본문 바로가기

딥러닝/cs231n

(8)
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..
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..
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..
2강. Image Classification: Programming K nearest Neighbor (kNN) exercise training 과정에서 classifier은 단순히 training data를 기억할 것이다. testing 과정에서 classifier은 각각의 test 이미지를 모든 training 이미지와 비교해서 그 중가장 가까운 k개의 training 이미지의 label로 결정할 것이다. k의 값은 cross-validation 과정을 통해 결정된다. 1. code setup, import data and packages # Run some setup code for this notebook. import random import numpy as np from cs231n.data_utils import load_CIFAR10 import matpl..
2강. Image Classification image classification input 이미지를 여러 카테고리 중 하나의 label로 할당하는 것으로 컴퓨터 비전의 핵심 문제이다. 컴퓨터가 이미지를 분류하기 어려운 이유 - 카메라의 각도, 조명, 이미지의 크기에 따라 pixel이 달라짐 - 물체가 가려지거나 배경색과 비슷해지면 인식이 어려움 - 하나의 대상이 여러 모양을 가진 경우 =>좋은 image classification model은 이러한 variation에 흔들리지 않아야 한다. Data-driven approach label을 가진 training set으로 model을 학습하는 알고리즘 [input -> learning -> evaluation]의 과정이 필요하다. input: n개의 training example이 k개의 cla..