목록인공지능 (45)
juuuding

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..

Alternatives to the sigmoid activation 이때까지 활성화 함수로 sigmoid 함수를 사용해왔다. 하지만 다른 활성화 함수를 사용하면 조금 더 강력한 neural network를 만들 수 있다. [Demand Prediction Example] 상품의 수요를 예측하는 예제로 생각해보자. unit2의 awareness 값을 안다/모른다와 같이 binary하게 나누지 말고 "the probability of awareness"를 측정하여 0 이상의 값으로 결과를 내고자 하면, a1_2의 activation function을 sigmoid가 아닌 ReLU로 설정하면 된다. ReLU에서는 0과 z 값 중 가장 최대의 값을 결과 값으로 선택하기 때문에, ReLU를 적용한 g(z)는 항..

Image Classification image classification 시 컴퓨터가 해야 할 일은 input 이미지 값을 받고, 저장되어 있는 카테고리로 이 input 이미지를 배정하는 것이다. 예를 들어 class에 dog, cat, truck... 이 있고 아래와 같은 이미지를 입력받았을 때, 이것을 cat으로 분류해 내는 것이 컴퓨터가 해야 하는 일이다. 이러한 image classification을 하는 데에는 "Semantic Gap"이라는 문제가 있다. 우리는 위의 고양이 사진을 볼 때 바로 이것이 고양이라는 것을 알 수 있지만, 컴퓨터는 이 사진을 볼 때는 다음과 같은 숫자들의 집합(pixel 값)으로 본다. 이처럼 고양이를 나타내는 사진의 의미와 픽셀 값들의 집합 사이에는 엄청난 차이가..

TensorFlow implementation [Train a Neural Network in TensorFlow] import tensorflow as tf from tensorflow.keras import Sequential from tensorflow.keras.layers import Dense # step 1) specify the model model = Sequential([ Dense(units=25, activation='sigmoid'), Dense(units=15, activation='sigmoid'), Dense(units=1, activation='sigmoid') ]) from tensorflow.keras.losses import BinaryCrossentropy # ste..

How neural networks are implemented efficiently neural network를 for loop와 vectorization을 사용하여 수행할 수 있다. 아래의 코드에서 보다시피 vectorization이 코드가 더 간결하고, 속도가 더 빠르기 때문에 vectorization을 사용하는 것이 더 좋다. [For loops] x = np.array([200,17]) W = np.array([1,-3,5], [-2,4,-6]]) b = np.array([-1,1,2]) def dense(a_in,W,b): units = W.shape[1] a_out = np.zeros(units) for j in range(units): w = W[:,j] z = np.dot(w,x) + b..