1. 머신 러닝이란? 일종의 소프트웨어. explicit programming 어떤 경우에는 explicit 하게 코딩하기 힘들다. 가령 스팸 필터링의 경우, 경우의 수가 너무 많기 때문에 일일이 지정하기 어렵다. 또 자동운전도 마찬가지이다. => 일일이 프로그래밍 하지 말고, 어떤 현상에서 자연스럽게 배우게 하자! => 학습 학습 유형 super...
Regression (: 회귀) (Regression toward the mean : 평균으로의 회귀) Linear Regression 파란 점 : 데이터 => 이 파란 점을 가장 잘 대변하는 직선을 만드는 것 $y = ax + b$ a : 직선의 기울기 b : y 절편 즉, Linear Regression은 데이터를 잘 대변하는 a과 b의 값을 ...
Simple Linear Regression LAB => 단순 선형 회귀를 TensorFlow 코드로 어떻게 구현/실행하는지. remind Hypothesis => $H(x) = Wx + b$ Cost Function => $\text{cost}(W)=\frac{1}{m}\sum{i=1}^{m}\big(H(Wxi)-y_i\big)^2$ Learning (...
remind Hypothesis => $H(x)=Wx\,(+\,b)$ Cost Function => $\text{cost}(W)=\frac{1}{m}\sum{i=1}^{m}\big(H(xi)-y_i\big)^2$ => $b$가 생략되어 간략화 됨. cost가 어떻게 생겼는가? data $x\ \ y$ $1\ \ 1$ $2\ \ 2$ $3\ ...
remind Hypothesis => $H(x)=Wx\,(+\,b)$ Cost Function => $\text{cost}(W)=\frac{1}{m}\sum{i=1}^{m}\big(H(xi)-y_i\big)^2$ cost function in python cost function in tensorflow Gradient descent 변환 $\text...
remind Hypothesis => $H(x)=Wx+b$ Cost Function => $\text{cost}(W)=\frac{1}{m}\sum{i=1}^{m}\big(H(xi)-y_i\big)^2$ Gradient descent => $W \leftarrow W - a \cdot \frac{1}{m}\sum{i=1}^{m}\big(H(xi)-yi\big...
remind Hypothesis : $H(x1, x2, x3)=w1x1+w2x2+w3x_3$ random weights (스칼라 3개 버전) numpy slice로 행렬 형태로 전환 행렬 가중치 버전 full code matrix 사용 여부에 따른 코드 비교 $[\,x1\ x2\ x3\,]\begin{bmatrix}w1\\ w2\\ w3\end{b...
: 분류기법 중 하나로, 서로 다른 도형을 분류하는데 사용된다. 1. Logistic Regression 1) Classification Boundary Classification => 0과 1로 분류되는 것. ex) Pass/Fail, Spam/Not Spam, Real/Fake 등 학습 데이터 2) Logistic vs Linear (데이터의 관점에...
Multinomial classification: 여러 개의 클래스가 있을 때 예측하는 분류기법. remind — Logistic regression $H(X)=XW$ 시작은 기본적인 Linear Regression이다. 그러나 Linear는 그 결과값이 어떤 특정한 실수값이 되기 때문에 Binary Classification에는 적합하지 않다. $Z=H...
Softmax Classifier 기본 Sample Dataset Softmax function : 여러개의 클래스를 예측할 때 유용하다. $XW=Y=\begin{bmatrix}2.0\\1.0\\0.1\end{bmatrix}\ \rightarrow{\ S(yi)=\frac{e^{yi}}{\sum{j} e^{yj}}\ \rightarrow}\ \begin{...
1. Learning rate 1-1. Gradient Gradient(기울기) 각 파라미터에 대한 비용 함수의 변화량 $\dfrac{\partial}{\partial\theta_j}J(\theta)$ Learning rate 실제로 기울기 방향으로 얼마나 이동할지를 결정하는 값(스텝 크기) 파라미터 업데이트 규칙(Gradient Desc...
1. Activation function Activation function 뉴런의 동작을 유사하게 재현한 모델. 외부 입력과 뉴런의 대응 관계: 외부 입력값 $x_0$ (뉴런의 축삭) 가중치 $w_0$ (시냅스) 곱 $w0 x0$ (수상돌기) 입력과 가중치를 모두 모으면 다음과 같이 표현된다. $w0 x0$ $w1 x1$ $w2 x2$ 이를 ...
Lec-09 special 1. 미분의 정의 $\dfrac{d}{dx}f(x)=\lim_{\Delta x\to 0}\dfrac{f(x+\Delta x)-f(x)}{\Delta x}$ 이를 다른 말로, 순간변화율이라고 한다. 이제, 다음 예제들을 생각해 보자. (단, 편의상 $\Delta x=0.01$ 이라고 하자.) 2. 예제로 보는 미분 2-1)...
Lec-10 1. Relu activation function Sigmoid의 문제점 기존 NN은 다음과 같은 과정을 거친다. input → Network → output 이때 ground-truth와 output이 얼마나 차이가 나는지를 loss라고 하고, loss를 미분한 것을 backpropagation 하면서 네트워크를 학습시킨다. 이때 bac...
1. ConvNet의 Conv 레이어 만들기 CNN introduction 기본적인 네트워크는 여러 형태가 있다. 가령 입력을 받고, 각 레이어를 쭉 이어나가서 전체가 연결되는 형태인 fully connected 가 있을 수 있다. 또 다른 형태로는, 입력을 여러 개로 나누고 하나로 합친 뒤 내보내는 형태가 있을 수 있다. 바로 이것이 Convoluti...
remind CNN (Convolutional Neural Network) 이미지 분류에서 가장 많이 쓰이는 방법. 일반적으로, convolution, pooling, fully connected 3개의 레이어로 구성된다. 이때 convolution, pooling 레이어는 이미지의 모서리, 선, 질감, 모양, 부분 패턴 등 특징을 추출하는 레이어이다....
1. Sequential Api 사용 텐서플로우의 NN 실행 흐름 하이퍼파라미터 설정 — 학습률, 학습 에포크, 배치 크기 등 데이터 파이프라인 구성 — tf.data 사용 신경망 모델 구축 — tf.keras Sequential API 사용 손실 함수 정의 — 교차 엔트로피 gradient 계산 — tf.GradientTape 사용 옵티마이저 선택 —...
Ensemble : 모델 서브클래싱 방식으로 모델 클래스를 만들고, 그 인스턴스를 여러 개를 각각 학습시켜 좋은 성능을 낼 수 있게 한다. 변경점 신경망 모델 구축 — tf.keras 사용 (실제 모델 클래스는 동일하지만, 인스턴스를 여러 개 생성) 모델 성능 지표
1) Sequence data란? 우리가 사용하는 데이터 중에는 sequence data(순서가 있는 데이터)가 많다. => 음성 인식, 자연어, 시계열 데이터, 로그 데이터 등 => 우리는 하나의 단어만 이해하는 것이 아닌, 문장/내용 전체를 듣고 이해하는 것이다. 기존 NN/CNN은 하나의 입력이 있으면 바로 1개의 output으로 나오기 때문에...
1) tf에 포함된 keras로 rnn을 구현하는 2가지 방법 tf에 포함된 keras로 rnn을 구현하는 2가지 방법이 있다. rnn, lstm, gru 등 특정 셀을 선언하고 이를 루프하는 코드를 활용하는 방법 셀과 rnn을 결합한 api를 활용하는 방법 위 두 방법은 동일하므로, 목적이나 환경에 따라 선택하면 된다. 2) 구현 예제 1 - One...
RNN의 다양한 활용법 RNN은 다음과 같이 다양한 형태로 활용할 수 있다. One to Many : 특정 이미지를 입력으로 받아 캡션으로 만드는 이미지 캡셔닝 분야에 활용 Many to Many : 문장을 입력으로 받아 문장을 출력하는 NN Translation, 문장을 받아 형태소를 분석하는 형태소 분석기로 활용 가능. Many to One : 자연...
Many to Many란? Many to Many는 자연어 처리에서 개체명 인식, 형태소 분석과 같은 스퀀스 태깅 등에 활용할 수 있다. Many to One은 각 토큰을 읽다가 마지막 토큰을 읽었을 때 출력을 내는 구조였다. 그러나 Many to Many는 시퀀스 각각의 토큰에 대해서 출력을 내는 방식이다. 위 형태소 분석 예제에서, 먼저 ['te...
Seq to Seq는 시퀀스 입력을 받아서, 시퀀스 출력을 만들어내는 방식이다. 번역, 챗봇 같은 “문장을 문장으로 바꾸는 문제”에서 자주 사용된다.Seq to Seq의 대표 구조가 인코더 — 디코더다.인코더는 입력 문장을 읽고, 입력 정보를 담은 벡터(상태)를 만든다