목록전체 글 (99)
juuuding
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..
Computer Vision이란? Computer Vision이란 시각적 데이터들을 효과적으로 이해하고 분석하여, 컴퓨터가 인간의 시각적인 인식 능력을 가질 수 있도록 알고리즘을 개발하기 시작한 것이다. Vision의 역사 약 5억 4천만년 전, 천 만 년이라는 짧은 시간동안 생물 종이 폭발적으로 증가한 시기가 있다. 이 현상을 "Evolution's Big Bang" 이라고 부른다. 이 현상의 원인의 가설 중 가장 설득력 있는 가설은 Andrew Parker가 5억 4천만년 전 생물에게 최초의 눈이 생겨났다는 가설이다. 눈이 생김으로써 생물들은 훨씬 더 능동적이게 되었고, 살아 남기 위해서는 빠른 진화가 필요해졌다고 한다. Computer Vision의 역사 🔎1950s [Hubel & Wiesel] ..