
일단, 딥러닝에서 W를 업데이트 하기 위해서 경사하강법을 쓰는데, Loss가 작아지는 방향으로 가는 길을 구하기 위해서 쓰는 방법이 두개가 있다. 1) numerical 2) analytic numerical하게 구한다는 것은, 미분의 정의를 이용하는 것이다. 컴퓨터가 고생좀 하겠지만...엄청 작은 h를 넣어서 계산해보는 방식이다. 근데 이건 cost가 너무 크니까 실제로는 analytic 하게 구한다. analytic 하게 구하는 방법에는 두가지가 있다. 1 - 직접 구하기 ( 수학적으로 미분!) y = x^2이면, 우리는 y'은 2x인걸 아니까 이걸 그냥 써도 된다. 사실 이렇게 식이 쉽다면 직접 구하는게 짱이다. 근데 레이어가 쌓일 수록 식이 복잡해지니까 2번 방법을 도입한다. 2 - Backpro..

Intro 간단하게 intro로 Norm과 Lp-Norm의 차이를 엄밀하게 설명해보려고 한다! 딥러닝에서는 Norm이라고 지칭하면 Lp-Norm을 쓰길래 궁금하지 않으신 분들은 pass해도 될것같다! 수학에서 'Norm'이란 벡터 공간상의 함수이다. 이 함수는 다음 4개의 조건을 충족하는 함수이다. 1) $f(ax) = af(x)$ 2) $f(x+y) \leq f(x) + f(y)$ 3) $f(x) = 0 x=0$ 4) $f(x) \geq 0$ 그중에서 Lp-norm이란 수많은 norm중에 하나로, 다음과 같이 정의되는 함수이다. $\parallel x\parallel_p = (\sum_{i=1}^n | x_i \right|)^p$ Stanford cs231n강의에서 k-nearest neighbor을 ..

출처 : Stanford cs231n https://www.youtube.com/watch?v=h7iBpEHGVNc&list=PL3FW7Lu3i5JvHM8ljYj-zLfQRF3EO8sYv&index=3 0. SVM ( Support Vector Machine ) 이란? http://hleecaster.com/ml-svm-concept/ 1. Multiclass SVM loss 코드는 다음과 같이 벡터화해서 작성할 수 있다. 2. Loss함수의 regularization 처음과 같이 작성하니 과도하게 training set에 최적화되는 문제가 생겼다. 파란색 선처럼! 그래서 람다 값을 추가하는데 이를 Regularization이라고 한다. 그래서 Loss함수는 이제 Data Loss와 Regularizat..
1. flatnonzero import numpy as np a = np.array([1.2,-1.3,2.2,5.3,3.7]) print(np.flatnonzero(a>2)) # [2 3 4] a에서 2보다 큰 애들 ( 즉 조건에 부합하는 원소들 ) 의 index를 array로 리턴해주는 함수! 2. dot W.dot(x) 3. arange print(np.arange(12)) -> [0, 1, ..., 11]이 결과로 나온다! print(np.arange(1, 12)) 이런식으로 쓰면 [1, ..., 11]이 된다. 4. reshape reshape()의 ‘-1’이 의미하는 바는, 변경된 배열의 ‘-1’ 위치의 차원은 “원래 배열의 길이와 남은 차원으로 부터 추정”이 된다는 뜻이다. x = np.ara..

"밑바닥부터 시작하는 딥러닝"을 읽고 작성한 게시글입니다. 이 포스팅 에서 퍼셉트론을 다룰 때, 퍼셉트론을 다음과 같은 함수로 정의했다. \begin{equation*} y=\begin{cases} 0\quad (w_1x_1+w_2x_2+b\leq0)\\ 1\quad (w_1x_1+w_2x_2+b>0) \end{cases} \end{equation*} 임계값을 경계로 출력이 바뀌는 이 함수는, 계단같이 생겨서 계단 함수이다. Perceptron에서는 Activation Function(활성화 함수)으로 계단 함수를 사용하는 것이다. 그렇지만 계단함수 외에 다양한 함수들을 사용할 수 있는데, 이 포스팅에서는 새로운 함수로 Sigmoid와 ReLU를 다뤄보려 한다. 1. Sigmoid Function $h(..

1. Mean Squared Error(MSE) 2. Cross Entropy Error(CEE) 먼저,이 에러는 하나하나의 데이터에 대한 에러 값이다. softmax를 통과한 값을 확률로 쓴다. softmax를 생각해보면, 이렇게 생겼다. k = e^a / (e^a + e^b + e^c) t는 정답이면 1이고, 오답이면 0이다. sigma를 쓰지만 정답인 값의 log만 쓰이는 셈이다. one-hot encoding한 y(신경망 출력), t(정답 레이블) 에 대해서, E = -sum(t_k * log(y_k)) 근데 one-hot encoding 해줬으니까 0

"밑바닥부터 시작하는 딥러닝"을 읽고 작성한 게시글입니다. 머신러닝 문제는 크게 분류(classification)과 회귀(regression)으로 나눠진다. 출력층의 활성화 함수(output layer function)가 Regression에서는 항등함수를, 2클래스 Classification에서는 시그모이드 함수를, 다중 Classification에서는 소프트맥스 함수를 사용하는것이 일반적이다. 오늘은 그 중에서 다중 클래스 분류에 쓰이는 softmax function을 (주로) 다뤄보려고 한다. 1. Identity Function 말그대로 input과 output이 identical한 함수이다. $ f(x) = x $ 2. Softmax Function $ y_k = \frac{e^{a_k}}{\s..

"밑바닥부터 시작하는 딥러닝"을 읽고 작성한 게시글입니다. 1. 퍼셉트론이란? 문과스러운 얘기 다 빼고... 퍼셉트론은 \begin{equation*} y=\begin{cases} 0\quad (w_1x_1+w_2x_2\leq\theta)\\ 1\quad (w_1x_1+w_2x_2>\theta) \end{cases} \end{equation*} 인 함수이다. 임계값을 넘으면 1, 아니면 0인 함수라고 생각하면 편하다. 퍼셉트론을 정의하는 값은 $ \theta, w_1, w_2, ..., w_n$이 된다. 만약 $\theta$ 를 $-b$로 치환해보면, \begin{equation*} y=\begin{cases} 0\quad (w_1x_1+w_2x_2+b\leq0)\\ 1\quad (w_1x_1+w_2x_..

로컬 환경과 다르게, google colab에서는 단순히 같은 경로에 있다는 이유로 csv파일을 사용할 수 없었다. 1. 구글 드라이브에 있는 파일을 바로 불러와 반영 2. files.upload() 사용하기 3. pandas의 read_csv로 자료의 링크를 바로 읽어와서 사용 나는 2번 files.upload() 사용하기로 해 보았다. 코드를 입력하고 run하면, 다음과 같이 파일을 선택할 수 있게 된다. !ls로 원하는 파일이 있는지 확인해본다. 이런식으로 써주면 된다.