목록인공지능 (41)
juuuding
지금까지 Mini-batch SGD(Stochastic Gradient Descent) 즉 데이터의 일부를 샘플링하여 순방향 전파로 loss 값을 구한 후 역전파로 경사를 계산하고, 이것을 이용하여 parameters을 update하는 방법을 사용해왔다. 이제 여기서 사용하는 nerual network를 훈련시키는 방법에 대해 알아볼 것이다. Overview 1. One time setup - activation functions (활성화 함수) - preprocessing (전처리) - weight initialization (가중치 초기화) - regularization (정규화) - gradient checking (경사 확인) 2. Training dynamics - babysitting the ..
지난 시간 Neural Networks에 대해 알아보았고 이제 Convolutional Neural Networks를 학습할 것이다. 작동 방식을 학습하기 앞서 Convoltional Neural Networks의 역사에 대해 알아보자. History [Perceptron(~1957)] Mark 1 Perceptron 기계는 퍼셉트론 알고리즘의 첫 실행. 이 기계는 20*20 photocells를 사용하는 카메라와 연결되어 있었고 400 pixel 이미지의 결과를 냈다. 픽셀 값은 1 또는 0으로만 표현이 되었고, 역전파에서 사용한 것과 비슷한 update rule이 사용되었지만 역전파의 원리를 적용하지는 않았다. 이것으로 알파벳을 인식할 수 있었다. [Adaline/Madaline(~1960)] lin..
최적화를 하기 위해 w가 변화함에 따라 Loss 값이 어떻게 바뀌는 지 알아야 한다. gradient descent로 parameter 값이 변할 때 loss가 얼마나 변하는지 알아낼 수 있는데, 여기서 우리는 "Backpropagation" 과정을 이용하여 빠르고 쉽게 gradient descent를 계산해낼 수 있다. Backpropagation [Computational graphs] Backpropagation 과정을 잘 표현하기 위해 "Computational graph"라는 계산 과정을 그래프로 나타낸 그림을 이용할 것이다. 각 노드는 계산 과정을 나타내고 노드들은 엣지로 이어서 표현한다. [Backpropagation] 다음은 역전파(Backpropagation)의 간단한 예시이다. 우선 식..
Optimization Optimization은 loss를 최소화하는 best W를 찾기 위한 과정이다. 한 사람이 산의 한 꼭대기에 올라왔다고 생각해보자. 이 사람은 산의 가장 낮은 골짜기 부분으로 가야한다. 여기서 내려갈 때 아무런 길로 가는 것이 아니라, 가장 빠르게 골짜기로 향할 수 있는 길을 선택해야한다. 이것이 optimization의 기본 아이디어이다. 산의 높이는 해당 지점의 w로 인해 발생한 loss의 값을 의미한다. 다음으로 optimization을 하는 방법에 대해 알아보자. ① Random search import numpy as np bestloss=float("inf") # bestloss 변수에 float 형식에서 가장 큰 값 넣기 for num in range(1000): W..
Loss Function 다음과 같은 3가지 class의 훈련 예제가 있다고 가정하자. 그리고 아래의 숫자는 해당 사진에 대한 각 class의 score이다. loss function은 우리가 가진 classifier가 얼마나 잘 작동하는지를 말해준다. 앞으로 loss function을 l로 표현할 것인데 이 식에서 image는 x로, target인 label은 y로 표현된다. 아래의 식을 해석하면 loss는 각 image에서 우리의 classifier가 예측한 결과에 대한 loss 값에 대해 평균을 낸 것이다. 이러한 loss를 계산하는 두가지 방법 SVM, Softmax 에 대해 알아볼 것이다. 참고로 다음 표현은 우리가 가진 classifier로 한 image에 대해 각 class의 score을 간..
Advanced Optimization 기존 gradient descent보다 더 나은 방법으로 빠르게 loss를 최소화할 수 있는 방법에 대해 알아보자. [Gradient Descent] 아래는 간단하게 w에만 경사하강을 적용하는 식이다. alpha 값이 적절하게 설정되어 있지 않을 때 발생할 수 있는 문제에 대해 두가지 경우로 나누어 알아보자. ① alpha(learning rate)이 작을 때 learning rate이 너무 작다면 경사하강을 진행할 때 한 방향으로 아주 조금씩 움직이며 최소 loss값에 천천히 가까워진다. 이때 learning rate 값을 적절하게 높여주면 조금 더 빨리 최소 loss 값에 가까워질 수 있다. ② alpha(learning rate)이 클 때 learning ra..
Classification with multiple outputs [Multi-label Classification] 우리가 판별해야 할 물체가 여러개 있다고 가정하자. 예를 들어 아래와 같이 사진에서 car, bus, pedestrian이 있는지 판별해야한다고 가정하자. 이러한 문제를 해결하는 방법 중 간단한 방법은 완전히 다른 머신러닝 문제로 해결하는 것이다. 예를 들어 nn1은 car을 감지, nn2는 bus 감지, nn3는 pedestrian 감지를 하는 것이다. 하지만 이는 좋지 않은 방법이다. 따라서 이러한 문제를 다음과 같이 하나의 neural network 결과로 나오게끔 해결해 볼 것이다. 이것을 multi-label classification이라고 하며 이는 multiclass clas..
Multiclass 이때까지 y 값이 두개인 binary classification을 다루었다. 이와 달리 multiclass classification은 y가 두개 이상의 가능한 값을 가질 수 있는 것을 말한다. 아래의 그래프로 예를 들자면 왼쪽 그림은 binary classification이고, 오른쪽 그림은 y가 1,2,3,4 값을 가질 수 있는 multiclass classification이다. Softmax softmax는 binary classification인 logistic regression algorithm의 일반화이다. softmax를 사용해서 앞서 본 multiclass classification을 해결할 수 있다. 우선 2개의 결과 값을 가질 수 있는 logistic regress..