본문 바로가기

딥러닝

(38)
FullyConnected Nets: Programming 개요
5강. Convolutional Neural Network 학습 알고리즘의 역사 1. Perceptron 2. Multi Layer Perceptiron - activation function을 이용하면서 여러 층을 쌓음 - sigmoid로 각 층으로 확률적 mapping 가능 - back propagation 3. Deep Multi Layer Perceptron - sigmoid의 grad vanishing 문제를 ReLU로 해결 4. Deep Neural Network - 음성인식, 영상처리에서 좋은 효과 - 뇌과학 연구에서는, 뇌가 시각정보를 받아들이는 데에 뉴런이 oriented edge와 shape에 반응하고 계층적 구조를 가진다는 것을 발견했다. - LeNet-5: 우편물 숫자 인식 - AlexNet: imagenet classification 4...
3장. Programming: Stochastic Gradient Descent 1. X_train과 y_train을 LinearSVM model로 train LinearClassifier LinearClassifier class에는 __init__(self), train(self, X, y, learning_rate=1e-3, reg=1e-5, num_iters=100, batch_size=200, verbose=False), predict(self, X), loss(self, X_batch, y_batch, reg) 함수가 있다. 또한, LinearSVM과 Softmax class는 LinearClassifier을 상속받아서 LinearClassifier의 함수들을 사용할 수 있고, 각각 loss 함수가 있다. class LinearSVM(LinearClassifier): """..
4장. Neural Networks and Back Propagation Neural Networks input이 affine 계층과 activation 계층을 거치면서 각 층의 output들의 shape이 달라지게 된다. multi classification의 경우 마지막 layer은 class의 개수만큼 output이 출력되도록 만들어야 한다. neural network를 만들 때 layer의 수, regularization parameter, activation function의 종류 등을 잘 선택해야 한다. back propagation에서 dL/dW를 어떻게 계산해야 하는가? loss, model의 종류, activation function의 종류가 바뀜에 따라 dL/dW도 바뀔텐데, 모든 변화를 아우르는 dL/dW를 어떻게 계산하면 좋을까? => BackPropag..
7장. 합성곱 신경망(CNN) 7.1 전체 구조 신경망 합성곱 신경망 Affine 계층(완전연결층) 합성곱 계층(convolutional layer), 풀링 계층(pooling layer) 7.2 합성곱 계층 1) 완전 연결 계층의 문제점 - 데이터의 형상이 무시된다. - C, H, W이 무시되고 하나의 긴 벡터가 affine 계층에 입력된다. 특징 맵 (feature map) : CNN에서 합성곱 계층의 입출력 데이터, input feature map과 output feature map이 있음. 2) 합성곱 연산 - 필터 연산 입력 (4, 4) * 필터 (3, 3) -> 출력 (2,2) 필터의 윈도우를 옮겨가며 단일 곱셈-누산 연산(fused multiply-add, FMA)을 반복함. 필터의 매개변수를 가중치라고 생각할 수 있다...
3장. Multiclass Support Vector Machine : Programming SVM classifier 1) svm_loss_naive from builtins import range import numpy as np from random import shuffle from past.builtins import xrange def svm_loss_naive(W, X, y, reg): dW = np.zeros(W.shape) # initialize the gradient as zero num_classes = W.shape[1] num_train = X.shape[0] loss = 0.0 for i in range(num_train): scores = X[i].dot(W) correct_class_score = scores[y[i]] for j in range(num_classes..
6장. 학습 관련 기술들 6.1 매개변수 갱신 최적화(optimization): 손실 함수의 값을 가장 작게 하는 매개변수를 찾는 과정 (1) 확률적 경사 하강법 (SGD: Stochastic Gradient Descent) loss function의 기울기 * 학습률을 빼가면서 W를 update 한다. 즉 Loss function이 기울어진 방향으로 일정 거리만큼 가는 방법. class SGD: def __init__(self, lr=0.01): self.lr = lr def update(self, params, grads): for key in params.keys(): params[key] -= self.lr * grads[key] params 매개변수들에 대해 learning rate * key에 대한 gradient만큼..
3장. Loss Functions and Optimization Loss Function loss function은 classifier의 성능이 얼마나 별로인지를 나타내는 지표로 loss function의 값이 작을 수록 classifier가 train set을 정확하게 분류함을 의미한다. 일반적으로 loss function은 각 example에 대해 f(x,W)=x*W의 예측값과 실제 정답값인 yi를 loss function으로 비교하여 평균낸 값이다. MultiClass Support Vector Machine (SVM) Loss 그 중에서도 multiclass svm의 loss function은 위와 같이 쓴다. i번째 example xi에 대해 W에 따라 어떤 class로 분류될지에 대한 score을 구할 수 있고 이를 s라고 하자. s_j는 xi가 j번째 c..