목록인공지능 (41)
juuuding
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] ..
Forward prop in a single layer 앞서 본 coffee roasting 예제로 forward propagation 과정은 아래와 같은 그림으로 표현된다. # inupt data x = np.array([200,17]) 우선 layer1의 unit 1 처리 과정이다. w1_1 = np.array([1,2]) b1_1 = np.array([-1]) z1_1 = np.dot(w1_1,x)+b1_1 a1_1 = sigmoid(z1_1) 위와 마찬가지로 layer1의 unit 2, unit 3 처리 과정이다. # layer1 unit2 w1_2 = np.array([-3,4]) b1_2 = np.array([1]) z1_2 = np.dot(w1_2,x)+b1_2 a1_2 = sigmoid(z..
Inference in Code [Coffee roasting 예제] training set X에 temperature & duration 입력하여 good coffee / bad coffee 를 구분해보자. neural network의 layer 개수는 2개, layer1은 unit 3개, layer2는 unit 1개로 이루어져 있다고 가정한다. 그 후 layer2를 거친 값인 a2가 임계값 0.5 이상이면 "good coffee", 0.5 미만이면 "bad coffee"로 구분한다. model 생성을 위해 TensorFlow를 사용한다. # layer1 적용 x=np.array([[200.0, 17.0]]) layer_1 = Dense(units = 3, activations = 'sigmoid') ..
Neural network layer hidden layer 내부를 좀 더 자세히 살펴보자. 아래의 사진은 layer1의 내부이다. 각 neuron 마다 w, b 값이 있으며 표기는 다음과 같이 한다. hidden layer1을 거친 결과는 a[1]로 표현되며 이는 각 뉴런에 해당되는 w,b가 적용된 sigmoid 함수를 거친 활성화 값이다. a[1] 값이 output layer인 layer2에 들어가면 한 뉴런의 sigmoid 함수를 거쳐 결과가 도출되고 이 결과 값은 스칼라 값으로 결정된다. 이 후 결과 값으로 category를 예측한다. More complex neural networks hidden layer가 더 많은 복잡한 신경망을 자세히 살펴보자. hidden layer1과 마찬가지로 hid..