본문 바로가기

728x90
반응형

데이터와 인공지능/A.I.

(11)
[CS231n] Lecture 4. Backpropagation and Neural Networks Table of contents 1. Introduction 1.1 Forward propagation 1.2 Backward propagation 1.3 computational graph 1.4 chain rule 1.5 Partial Derivative 2. Backward propagation 2.1 Backward propagation 2.2 Gradients for Vector 3. Neural Networks 3.1 Neural Networks 1. Introduction 미분을 통해 최적화를 하는 방법에는 크게 두가지가 있었습니다. Numerical gradient (수치적 미분) : 속도가 느리고 근사치를 찾는 방법임. Analytic gradient (해석적 미분) : 빠르고 정확하지만..
[CS231n] Lecture 8. Deep Learning Software 목차 1. CPU vs GPU 2. Deep Learning Frameworks 2.1 Pytorch 3. Static vs Dynamic Graphs 1. CPU vs GPU CPU와 GPU에 대해 이야기를 하자면 왼쪽 그림은 CPU 칩의 모습이고 오른쪽 그림은 GPU의 모습이다. 위 그래프는 x축은 모델, y축은 연산에 소요된 시간인데 성능이 하드웨어 크기에 비례하는 것인지 GPU(빨, 주)가 CPU(파)보다 훨씬 적은 시간이 소요됐다. 64~76배 차이가 있는데 무조건 GPU를 쓰는게 좋다는 것을 알 수 있다. 강의에서 말하기를 CPU에서는 병목 현상(bottleneck)이 발생할 수 있기 때문에 GPU를 사용하는게 좋고 데이터는 CPU에 저장하며, 모델은 GPU에서 작동하는 것이 좋다고 한다. 2..
[SVM] 서포트 벡터 머신 (Support Vector Machine) 딥러닝이 나오기 이전에 많이 사용되고 좋은 성능을 보여준 서포트 벡터 머신에 대해 리뷰하겠다. 글의 내용은 책 핸즈온 머신러닝을 참고하여 작성했다. 0. SVM이란 SVM(Support Vector Machine)이란, 매우 강력한 머신러닝 알고리즘으로 머신러닝을 배운 사람이라면 반드시 알고 있어야 하는 모델이다. 선형이나 비선형 분류, 회귀, 이상치 탐지에도 사용할 수 있는 다목적 머신러닝 알고리즘으로 특히 분류에서 성능이 뛰어나기 때문에 주로 분류에서 많이 사용된다. 위 그림에서 Separating Hyperplane은 일종의 Decision Boundary 결정 경계이다. Decision Boundary란 분류를 하기 위한 기준 선이라고 생각하면 된다. 지금은 간단한 2-dimension에서의 De..
[CV] Object Detection 검증 지표 Object Detection 문제에서 모델 성능을 평가할 때 단일 레이블이먄 AP(Average Precision)을 사용하고 다중 레이블이면 mAP(mean Average Precision)을 사용한다. mAP는 AP로 계산할 수 있고 AP는 PR 곡선(Precision-Recall Curve)으로 구하며, PR 곡선은 Precision과 Recall으로 구하기 때문에 Object Detection 문제를 해결하는 모델의 성능을 검증하기 위해서 Precision과 Recall을 먼저 알아야 한다. Precision과 Recall을 설명하기 이전에 Confusion Matrix라고 하는 아래 표를 보고 용어를 이해해야 한다. 1. Precision Precision은 정확도를 의미하며 검출 결과 중 올..
[CNN] LeNet-5 모델 구현하기 LeNet-5는 손글씨, 우편 인식 등 이미지 분류에 쓰이던 DNN(Deep Neural Network)이다. LeNet-5에 대한 자세한 정보는 [1]에서 찾아 볼 수 있지만, 간단하게 설명한 후에 Tensorflow로 어떻게 구현해야 하는지 코드 리뷰를 하겠다. LeNet-5는 입력층을 제외하고 3개의 Convolutional Layer(Cx), 2개의 Sub-Sampling Layer(Sx), 그리고 2개의 Full-Connected Layer(Fx)로 총 7개의 층으로 구성되어 있다. 그래서 [그림 1]에서 C1 - S2 - C3 - S4 - C5 - F6 - OUTPUT(F7)와 같이 층이 쌓이는 순서대로 표현한 걸 볼 수 있다. Sub-Sampling Layer는 Pooling Layer라고도..
[Keras] Keras 내장 모델 불러오기 또는 모델 구조만 불러오기 Dacon 대회에 참여 할 때 높은 정확도를 추출하고자 증명된 모델을 사용하고자 했다. 하지만 대회 규정에는 이미 학습된 모델을 사용하는 것은 위반이기 때문에 모델 구조만 가져오는 법을 찾다가 정리 또는 기록 겸 글을 작성한다. 모델 구조만 불러오는 방법과 학습된 모델를 불러오는게 별 차이가 없어서 같이 기록하려고 한다. Keras에는 기본적으로 ImageNet 데이터셋에 대해 학습된 모델을 제공해주고 있다. 사용 가능한 모델은 다음과 같다. Xception VGG16, VGG19 ResNet, ResNetV2, ResNeXt InceptionV3 MobileNet DenseNet NASNet 이제 위 모델을 불러올 때 1)학습된 모델 또는 2)모델 구조만 불러오는 방법을 알아보자. 1) import i..
[CV] 데이터를 학습 데이터와 검증 데이터로 분류하기 - train, validation test 데이터셋으로 자주 활용해 정확도를 올리다보면 범용성 있는 모델이 만들어지지 않는다. 그래서 여러가지 이유가 있지만 위와 같은 이유로 검증 데이터(validation datas)를 만들어 학습 과정에서 제대로 학습이 됐는지 확인한다. 우리는 sklearn 라이브러리에 있는 train_test_split() 메소드를 이용해 학습 데이터에서 검증 데이터를 분리하겠다. from sklearn.model_selection import train_test_split train_test_split()을 import 하기 위해 다음과 같이 선언해준다. 그런 다음에 학습 데이터에서 분리를 해야 하는데 학습 데이터를 만드는 방법을 모르겠다면 링크에서 csv에 있는 데이터를 로드할 수 있다. 어쨋든 학습 데이터가 ..
[CSV] csv에 담겨 있는 정보로 이미지 파일을 이미지 데이터로 load하기 데이터셋으로 디렉토리 하나가 주어지는데 그 안에 이미지 파일과 이미지 파일명과 label이 정리된 csv 파일이 있다. 그래서 이미지 데이터로 만들기 위해 csv 파일을 읽어 파일명과 label의 index를 갖게 해줘야 한다. 그러기 위해서 우리는 다음과 같은 라이브러리를 사용한다. 필요한 라이브러리 import numpy as np import pandas as pd from PIL import Image csv 파일 로드 train_dir = "data/train/" test_dir = "data/test/" train_csv = pd.read_csv(train_dir + "train_data.csv") test_csv = pd.read_csv(test_dir + "test_data.csv") 위에..

728x90
반응형