분류 전체보기 (117) 썸네일형 리스트형 CS231n_Lecture10: Recurrent Neural Networks Recurrent Neural Network one to one 모델 one to many 모델 입력은 이미지와 같은 단일 입력이지만 출력은 가변 출력 many to one 모델 가변입력(ex. 문장), 가변 출력 many to many 모델 Reccurent Neural Network 동작방식 일반적으로 RNN은 작은 recurrent core cell을 가지고 입력이 RNN으로 들어가면 내부의 hidden state가 입력이 발생할 때마다 업데이트 된다. hidden state는 모델에 feed back 되고 입력을 받아들인다. 파라미터 w를 가진 함수 f가 있다. 함수 f는 이전 상태의 hidden state인 h_t-1과 현재 상태의 입력인 x_t를 입력으로 받고, h_t(다음 상태의 hidden.. CS231n_Lecture9:CNN Architectures AlexNet 최초의 Large Scale CNN conv - pool - normalization 구조가 두 번 반복 AlexNet의 첫 레이어는 11 × 11 필터가 stride = 4로 96개가 존재한다. 첫 레이어의 출력사이즈는 55 × 55 × 96, 레이어 전체 파라미터 갯수 (96 × 11 × 11 × 3) = 35K 두번째 레이어는 Pooling Layer, stride = 2인 3 × 3 필터, 이 레이어의 출력값의 크기는 27 × 27 × 96이다. 이 레이어의 파라미터는 없다. 그 이유는 pooling은 가중치가 없고 특정 지역에서 큰 값을 뽑아내는 역할만 하기 때문이다. ReLU 사용, Dropout 사용, Batch size = 128, 초기 Learning rate는 1e-2이다.. CS231n_Lecture8:Deep Learning Software AlexNet 최초의 Large Scale CNN conv - pool - normalization 구조가 두 번 반복 AlexNet의 첫 레이어는 11 × 11 필터가 stride = 4로 96개가 존재한다. 첫 레이어의 출력사이즈는 55 × 55 × 96, 레이어 전체 파라미터 갯수 (96 × 11 × 11 × 3) = 35K 두번째 레이어는 Pooling Layer, stride = 2인 3 × 3 필터, 이 레이어의 출력값의 크기는 27 × 27 × 96이다. 이 레이어의 파라미터는 없다. 그 이유는 pooling은 가중치가 없고 특정 지역에서 큰 값을 뽑아내는 역할만 하기 때문이다. ReLU 사용, Dropout 사용, Batch size = 128, 초기 Learning rate는 1e-2이다.. CS231n_Lecture7:Training Neural Networks Fancier optimization SGD의 단점 Loss는 수직방향의 가중치 변화에 더 민감하게 변화하여 Hessian matrix의 최대최소 singular 값의 비율이 안좋다. 이렇게 빠르게 변하는 수직 차원을 가로지르면서 지그재그로 지저분하게 움직인다. 이런 방향 중 불균형한 방향이 있다면 SGD는 잘 동작하지 않을 것 local minimum 휘어진 손실함수 중간에 valley가 있으면 gradient가 0이되어 SGD가 멈춘다. saddle points 한쪽 방향으로는 증가하고 있고, 다른 한쪽 방향으로는 감소하고 있을때도 gradient가 0이 되어 SGD가 멈춘다. train상의 시간단축을 위해 미니배치 데이터로 loss를 추정하게 되는데, 이게 정확한 gradient가 아니다보니 최적화.. CS231n_Lecture6:Training Neural Networks Activation Functions : Sigmoid 입력 값이 크면 sigmoid의 출력은 1에 가깝다. 값이 작으면 0에 가까움 firing rate를 Saturation 시키는 것으로 해석할 수 있음. 문제점1 : Saturation은 gradient를 없앤다. X가 -10이면(음의 큰 값이면) gradient는 0 X가 0이면 잘 동작 X가 10이면(양의큰 값이면) gradient를 죽여 잘 동작하지 않음 문제점2 : sigmoid의 출력이 zero centered하지 않다는 것 입력이 항상 양수이면 가중치랑 곱해지고 활성함수를 통과 항상 양수이거나 항상 음수이므로 항상 입력된 gradient와 같은 부호 → W는 모두 같은 방향으로만 움직일 것 그러면 gradient 업데이트가 효율적이지 않다.. CS231n_Lecture5:Convolutional Neural Networks 초기에는 input image를 rlfrpvutj 3072차원의 벡터로 만들고 가중치 w를 곱하고, activation을 통해 출력을 얻었다. RGB color로(×3) 예시를 들자면, convolve filter를 두고 이 필터로 input의 이미지에서 특징을 추출한다. depth는 같아야 하고 결과적으로 5×5×3 convolve filter를 거쳐 28×28×1인 하나의 activation map이 나오게 되고 이것이 하나의 layer가 된다. 6개의 filter를 사용하면 6개의 activation maps가 나오고 depth는 6이 된다. 만약 stride가 3이면 fit하지 않음 이미지가 작으면 cnn층을 몇개 쌓지 않아도 sliding할 부분이 작이지고, 중간 영역들은 filter들이 중복되.. CS231n_Lecture4:Introduction to Neural Networks 예시 (x+y)z, x=-2, y=5, z= -4 이때 X가 f에 미치는 영향, y가 f에 미치는 영향, z가 f에 미치는 영향 df/dx, df/dy, df/dz 각각을 미분으로 구할 수 있다 바로 구할 수 없는 경우 chain rule을 적용하여 미분값 구할 수 있다 시그모이드를 구할 수도 있다 → 시그모이드 게이트가 들어가기전의 gradient는 시그모이드 값으로 구할 수 있다. 하나의 값이 아니라 다변수라면 자코비안 행렬 사용(다변수 함수일때의 미분값) 첫번째 차원은 출력의 해당 요소에만 영향을 주기에 자코비안 행렬=대각행렬이 되므로 모두 계산하지 않는다. 더 복잡한 식에서도 변수에 대해 gradient 항상 체크해야한다. (shape같은지 확인 필수) CS231n_Lecture3:Loss Functions and Optimization # 코드 구현 def L_i_vectorized(x, y, W): scores = W.dot(x) margins = np.maximum(0, scores - scores[y] + 1) margins[y] = 0 loss_i = np.sum(margins) return loss_i Data loss + Regularization Data loss : Model predictions should match training data Regularization : Model should be "simple", so it works on test data(정규화) L2 regularization L1 regularization Elastic net(L1+L2) Max norm regularization Dropo.. 이전 1 2 3 4 ··· 15 다음