원 핫 인코딩은 레이블 인코딩 후 진행한다.

 

Softmax

큰 숫자는 비중을 더 키워주고 작은 숫자는 비중을 더 작게 만들어 준다.

 

CNN(Convolutional Neural Networks)

컴퓨터 비전, 자연어처리도 할 수 있다.

 

피처를 뽑아내는 것이 중요하다.

피처 추출, 하나의 피처가 컬럼이 되어 딥러닝을 진행한다.

피처 추출이 컴퓨터 비전과는 다른다.

 

- Most widely userd for image classification

- Generally, it consists of convolution layer, pooling layer and fully-connected layer

- wieght(parameter, filter, kernel) sharing

- convolution, pooling layer - feature extraction

- fully connected layer classification

 

CNN에서는 0 padding을 사용한다.

그림이 급격하게 작아지는 것을 막는다.

 

pooling

피처의 수를 줄이기 위해 한다.

그레이 스케일에서는 평균 풀링을 사용하는 경우가 종종있다.

 

CNN은 특성(피처)울 추출하기 위함

 

RNN(Recurrent Neural Network)

이전 시점과 현재 시점의 정보를 가지고 학습을 한다.

이전 시점의 정보를 다음 정보의 데이터에 어떻게 넘겨주는지 

 

federated learning

 

 

'AI > DL' 카테고리의 다른 글

[빅리더_딥러닝_0728]  (0) 2021.07.28
[빅리더_딥러닝_0727]  (0) 2021.07.27
[딥러닝(Deep_Learning)] 신경망(Neural Network)  (0) 2021.07.26
[딥러닝(Deep_Learning)] 퍼셉트론(Perceptron)  (0) 2021.07.26
[빅리더_딥러닝_0726]  (0) 2021.07.26

XOR는 직선 하나로 +와 -를 구분할 수 없다.

그래서 선을 그어 새로운 축을 만들어 설명해보겠다.

 

 

Back Propagation

 

딥러닝이 잘 안된 이유

1. 레이블 된 데이터 셋이 수 천배 작았다.

2. 컴퓨터가 너무 느렸다.

3. 초기 가중치 값을 멍청하게 잡았다.

4. 데이터 타입이 안맞았다?

 

1. Our labeld datasets were thousands of tiems to small

2. Our computers were millions of tiems too slow

3. We initialized the weights in a stupid way

4. We used the wrong type of non linearity

 

 

 

가중치 스케일링?, 초기화

DBM

좀더 정확하게 찾기 위해

 

Xavier

가중치를 가우시안 분포로 뽑고, 입력 수에 맞춰 나누어 주었다.

Relu랑 같이 쓰면 작동이 잘 안된다.

 

He initialization

가중치를 가우시안 분포로 뽑고, 입력 수에 맞춰 나누어 주었다.

Relu랑 써도 괜찮다.

입력층과 출력층 사이의 가우시간 분포를 따르도록 만들어준다?

 

은닉층의 노드 수를 늘였다 줄였다 하는 것의 의미?

가중치 스케일에서 의미를 가지는 것인가?

 

batch nomarlization

각 각 은닉층 앞에 배치 정규화 층을 추가한다.

배치 정규화 층에서는 배치가 들어오는 것들을 평균이란 분산을 구해 nomalization 시켜준다.

Internal Covariate Shift

층이 늘어나면서 정규분포를 띄지 않아 발생하는 문제

 

Advantages of Batch Normalization

1. BN enables higher learning rate

2. BN regularizes the model

3. 초기값에 크게 의존하지 않는다.

 

딥러닝에서의 과적합

hidden layer가 너무 많은 경우, 노드 수가 너무 많은 경우, epochs을 너무 올린 경우

validation이나 test에서 못 맞춘다.

 

Dropout

layer를 랜덤하게 꺼서 학습을 시킨다, 과적합일 경우에 사용한다.

 

Ensemble in Deeplearning

 

데이터에 따른 최적의 모델은 없다.

보통 relu, adam, he initialization, 배치 정규화, 드롭아웃 등을 사용하는데 경험에 의해 찾는 것이 좋다.

 

 

 

 

 

 

'AI > DL' 카테고리의 다른 글

[빅리더_딥러닝_0729]  (0) 2021.07.29
[빅리더_딥러닝_0727]  (0) 2021.07.27
[딥러닝(Deep_Learning)] 신경망(Neural Network)  (0) 2021.07.26
[딥러닝(Deep_Learning)] 퍼셉트론(Perceptron)  (0) 2021.07.26
[빅리더_딥러닝_0726]  (0) 2021.07.26

data : 10000, batch_szie: 1000, epochs: 100

위의 경우 데이터 10000개 중 1000개를 뽑으나 랜덤으로 뽑고 1000개 학습 시 한 epoch으로 친다.

1000개의 데이터에 대해 iteration은 10을 가지고 10000개를 모두 학습하는 것이 1 epoch이다.

 

 

SGD(Stochastic Gradient Descent)

확률적 경사하강법

샘플을 랜덤하게 분리해 그것만 가지고 학습을 시킨다.

 

data : 10000, batch_szie: 1000, epochs: 100

위의 경우 데이터 10000개 중 1000개를 뽑으나 랜덤으로 뽑고 1000개 학습 시 한 epoch으로 친다.

 

데이배치사이즈는 100으로 둔다면

학습이란 경사하강법에 의해서 lr에 이전에 미분했던것을 곱해서 원래의 가중치에서 뺴준다.

data : 10000, batch_szie: 1000, epochs: 100

 

배치사이즈는 한 번 학습시킬 때의 데이터 양, 즉, 10000개를 1000개 단위, 10묶음으로 나눈다.

이때 iteration은 1이 된다?

 

 

딥러닝의 최종은 분류 모델이지만 회귀로 시작했다.

 

파이프라인 설계로 인해 첫 번째 epoch에서 시간이 뒤의 학습보다 오래 걸릴 수 있다.

파이프라인 알아보기

 

 

 

실제 실무에서는 정답이 없기 때문에 evaluate를 사용한다.

 

 

build_model을 for문 안에 넣는 이유

딥러닝에서는 2차 이상의 다항회귀가 나올 일이 없다?

딥러닝에선 보통 L2규제를 사용한다? L1은 잘 안쓰는 건가?

 

노이즈 데이터가 많은 경우 규제(L2)를 사용한다.

선형회귀는 모든 데이터에 대해서 맞출려고하기 때문에 오차가 발생할 수도 있다.

선형회귀는 노이즈에 민감하다, 그래서 규제를 사용한다.

 

퍼센트 단위로 줄이는 것이아니라 문제가 있는 것을 바꿔준다.

 

편향이 높다 -> epochs을 높혀야한다.

(average predict value - true)^2

 

분산이 높다 -> 과적합이다.

predicted value - average predicted value)^2 

 

 

선형회귀, 로지스틱 회귀

선형회귀는 할 수 없는 건 아니다. 하지만 어렵다.

선형회귀에서 항상 기울기가 1인 그래프로 그려지지 않는다, 즉 항상 threshold가 0.5가 아니다.

선형회귀에서는 threshold값이 수시로 바뀌어서 이진분류에선 로지스틱 회귀를 사용하는 것이 좋다.

로지스틱 회귀에서 사용하는 Sigmoid 함수는 threshold가 0.5로 고정된다.

 

로지스틱 회귀 더 찾아보기

 

Softmax Regression

 

 

 

 

'AI > DL' 카테고리의 다른 글

[빅리더_딥러닝_0729]  (0) 2021.07.29
[빅리더_딥러닝_0728]  (0) 2021.07.28
[딥러닝(Deep_Learning)] 신경망(Neural Network)  (0) 2021.07.26
[딥러닝(Deep_Learning)] 퍼셉트론(Perceptron)  (0) 2021.07.26
[빅리더_딥러닝_0726]  (0) 2021.07.26

3. 신경망

가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습하는 능력이 신경망의 중요한 성질입니다. 신경망이 입력 데이터가 무엇인지 식별하는 처리 과정을 알아봅니다.

 

3.1 퍼셉트론에서 신경망으로

신경망의 예

입력층 ... 은닉층 ... 출력층

가중치를 갖는 층은 2(입력층, 은닉층)뿐이기 때문에 ‘2층 신경망이라고 합니다. 문헌에 따라 신경망을 구성하는 층수를 기준으로 ‘3층 신경망이라고 하는 경우도 있습니다.

 

활성화 함수

입력 신호의 총합을 출력 신호로 변환하는 함수를 일반적으로 활성화 함수(Activation Function)이라 합니다.

, 입력 신호의 총합이 활성화를 일으키는지를 결정하는 역할을 합니다.

 

3.2 활성화 함수의 종류

퍼셉트론과 앞으로 볼 신경망의 주된 차이는 이 활성화 함수입니다.

 

계단 함수

활성화 함수로 쓸 수 있는 여러 후보 중에서 퍼셉트론은 계단함수를 채용하고 있습니다.

$$h(x)
=\begin{Bmatrix}
0 (x\leq 0)
\\ 
1(x> 0)
\end{Bmatrix}$$

 

시그모이드(Sigmoid, S자 모양 함수)

$$h(x)=\frac{1}{1+exp(-x)},  exp(x) = e^{x}$$

 

ReLU 함수

$$h(x)
=\begin{Bmatrix}
x (x >0)
\\ 
0(x \leq 0)
\end{Bmatrix}$$

입력이 0을 넘으면 그대로 출력하고, 0 이하이면 0을 출력하는 함수입니다.

 

3.3 다차원 배열의 계산

행렬의 곱에서는 대응하는 차원의 원소 수를 일치시켜야 합니다.

 

3.4 3층 신경망 구현하기

 

3.5 출력층 설계하기

출력층의 활성화 함수는 풀고자 하는 문제의 성질에 맞게 정합니다.

예를 들어 회귀에는 항등 함수, 2클래스 분류에는 시그모이드 함수, 다중 클래스 분류에는 소프트맥스 함수를 사용하는 것이 일반적입니다.

 

소프트맥스(softmax) 함수

$$y_{k}=\frac{exp(a_{k})}{\sum_{i=1}^{n}exp(a_{i})}, y_{k}=\frac{exp(a_{k}-C')}{\sum_{i=1}^{n}exp(a_{i}+C')}$$

(C'는 오버플로를 막을 목적으로 입력 신호 중 최대값을 입력하는 것이 일반적입니다.)

소프트 맥스 함수의 출력을 '확률'로 해석할 수 있습니다.

 

3.6 손글씨 숫자 인식

추론 과정을 신경망의 순전파라고도 합니다.

기계학습과 마찬가지로 신경망도 두 단계를 거쳐 문제를 해결합니다. 먼저 훈련데이터(학습 데이터)를 사용해 가중치 매개변수를 학습하고, 추론 단계에서는 앞서 학습한 매개변수를 사용하여 입력 데이터를 분류합니다.

 

MNIST 데이터셋

기계학습 분야에서 아주 유명한 데이터셋으로, 간단한 실험부터 논문으로 발표되는 연구까지 다양한 곳에서 이용하고 있습니다..

MnistExamples.png

데이터를 특정 범위로 변환하는 처리를 정규화라 하고, 신경망의 입력데이터에 특정 변환을 가하는 것을 전처리라 합니다.

 

배치 처리

가령 이미지 100개를 묶어 한 번에 계산하는 것을 목적으로 합니다.

(신경망 각 층의 배열 형상의 추이)

 

(배치 처리를 위한 배열들의 형상 추이)

배치 처리를 수행함으로써 큰 배열로 이뤄진 계산을 하게 되는데, 컴퓨터에서는 큰 배열을 한꺼번에 계산 하는 것이 분할된 작은 배열을 여러 번 계산하는 것 보다 빠릅니다.

 

3.7 정리

1. 신경망에서는 활성화 함수로 시그모이드 함수나 ReLU 함수 같은 매끄럽게 변하는 함수를 이용한다.

2. 넘파이의 다차원 배열을 잘 사용하면 신경망을 효율적으로 구현할 수 있다.

3. 기계 학습 문제는 크게 회귀와 분류로 나눌 수 있다.

4. 출력층의 활성화 함수로 회귀에서는 주로 항등 함수를, 분류에서는 주로 소프트맥스 함수를 이용한다.

5. 분류에서는 출력층의 뉴런 수를 분류하려는 클래스 수와 같게 설정한다.

6. 입력 데이터를 묶은 것을 배치라 하며, 추론 처리를 이 배치 단위로 진행하면 결과를 훨씬 빠르게 얻을 수 있다.

'AI > DL' 카테고리의 다른 글

[빅리더_딥러닝_0729]  (0) 2021.07.29
[빅리더_딥러닝_0728]  (0) 2021.07.28
[빅리더_딥러닝_0727]  (0) 2021.07.27
[딥러닝(Deep_Learning)] 퍼셉트론(Perceptron)  (0) 2021.07.26
[빅리더_딥러닝_0726]  (0) 2021.07.26

인공지능이란?

인공지능(AI, Artificial Intelligence)은 사람의 지능을 모방하여 사람이 하는 것과 같이 복잡한 일을 할 수 있는 기계를 만드는 것을 말합니다. 인공지능이 가장 넓은 개념이고, 인공지능을 구현하는 방법 중 중요한 방법이 기계학습 또는 머신러닝입니다. 딥러닝은 머신러닝의 여러 방법 중 중요한 방법론이며 인공신경망의 한 종류입니다.

, 인공지능 > 머신러닝 > 인공신경망 > 딥러닝 관계가 성립합니다.

 

2. 퍼셉트론

2.1 퍼셉트론(인공 뉴런) 이란?

신경망(딥러닝)의 기원이 되는 알고리즘, 다수의 신호를 입력받아 하나의 신호를 출력, 입력 신호가 뉴런에 보내질 때는 각각 고유한 가중치가 곱해진다. 뉴런에서 보내온 신호의 총합이 정해진 한계(임계값)를 넘어설 때만 1을 출력합니다.

이를 '뉴런이 활성화한다'라고 표현하기도 합니다.

입력(x)과 가중치(w)를 곱한 합이 임계값(세타)보다 클 경우에만 1을 출력합니다.

가중치가 클수록 해당 신호가 그만큼 더 중요합니다.

 

2.2 단순한 논리 회로

이를 통해 AND, NAND, OR 등 논리 연산을 할 수 있습니다.

각 연산에서 달라지는 것은 가중치, 임계값(가중치 매개변수)입니다.

, 똑같은 구조의 퍼셉트론이 매개 변수의 값만 적절히 조정하여 AND, NAND, OR 연산이 가능합니다.

이때 임계값은 b(편향)으로 치환할 수 있고 이를 다시 나타내면 다음과 같습니다.

편향은 가중치 (w1, w2)와는 기능이 다릅니다.

기중치 (w1, w2)는 각 입력 신호가 결과에 주는 영향력(중요도)을 조절하는 매개변수이고, 편향은 뉴런이 얼마나 쉽게 활성화(결과로 1을 출력)하느냐를 조정하는 매개변수입니다.

 

2.3 퍼셉트론 구현하기

 

2.4 퍼셉트론의 한계

퍼셉트론은 직선 하나로 나눈 영역만 표현할 수 있다는 한계가 있습니다.

곡선 영역은 비선형 영역, 직선 영역을 선형 영역이라고 합니다.

지금까지와 같은 퍼셉트론으로는 XOR 연산을 수행할 수 없습니다. , 단층 퍼셉트론으로는 비선형 영역을 분리할 수 없습니다.

 

2.5 다층 퍼셉트론이 출동한다면

지금까지와 같은 퍼셉트론을 단층 퍼셉트론이라 하며 XOR을 수행하기 위해선 다층 퍼셉트론이 필요합니다.

입력 x1, x2XOR연산하는데 이를 AND, NAND, OR 연산만으로 표현한다면 다음과 같습니다.

(x1 NAND x2) AND (x1 OR x2)

 

앞선 단층 퍼셉트론으로는 표현하지 못한 것을 층을 늘려 다층 퍼셉트론으로 표현한 것입니다.

 

2.6 NAND에서 컴퓨터까지

비선형인 시그모이드 함수를 활성화 함수로 이용하면 임의의 함수를 표현할 수 있습니다.

NAND 등의 저수준 소자에서 시작하여 컴퓨터를 만드는데 필요한 부품(모듈)을 단계적으로 만들어가는 것입니다.

처음에는 ANDOR 게이트, 그 다음에는 반가산기와 전가산기, 그 다음에는 산술 논리 연산 장치(ALU), 그 다음에는 CPU 라는 식입니다.

 

2.7 정리

1. 퍼셉트론은 입출력을 갖춘 알고리즘이다. 입력을 주면 정해진 규칙에 따른 값을 출력한다.

2. 퍼셉트론에서는 가중치편향을 매개변수로 설정한다.

3. 퍼셉트론으로 AND, OR 게이트 등의 논리 회로를 표현할 수 있다.

4. XOR 게이트는 단층 퍼셉트론으로는 표현할 수 없다.

5. 2층 퍼셉트론을 이용하면 XOR 게이트를 표현할 수 있다.

6. 단층 퍼셉트론은 직선형 영역만 표현할 수 있고, 다층 퍼셉트론은 비선형 영역도 표현할 수 있다.

7. 다층 퍼셉트론은 (이론상) 컴퓨터를 표현할 수 있다.

 

 

'AI > DL' 카테고리의 다른 글

[빅리더_딥러닝_0729]  (0) 2021.07.29
[빅리더_딥러닝_0728]  (0) 2021.07.28
[빅리더_딥러닝_0727]  (0) 2021.07.27
[딥러닝(Deep_Learning)] 신경망(Neural Network)  (0) 2021.07.26
[빅리더_딥러닝_0726]  (0) 2021.07.26

딥러닝의 기본적인 부분

 

암 오진 피해 사례

암 오진율 40%, 오진 의심 시 진료기록을 확보해야한다.

 

 

머신러닝

데이터를 기반으로 패턴을 학습하고 결과를 예측하는 알고리즘

 

차원 별 데이터

2차원 데이터: 벡터, 데이터
(samples, features)

3차원: 시계열 데이터, sequence data
(samples, timesteps, features)


4차원 : 영상
(samples, height, width, channels) or (samples, channels, height, width)

ㄴ Channel last (Tensorflow)               ㄴ Channel First(pytorch, Theano)

 

5차원 : 동영상

(samples, frames, height, width, channels)

 

회귀분석

피처들이 선형적이어야 성립된다.

 

경사하강법

RSS(w)를 미분하였을 경우 2차 방정식이 나온다. 그렇기에 최소가 되는 지점은 하나 밖에 없다.

RSS'(w)값에 학습률(n, 에타)를 곱하여 원래의 w에서 빼주어 w값을 갱신하면서 RSS(w)의 최소 값을 찾는다.

 

StandardScale 할 때 주의점
test_data -= mean # 입력될 데이터, train데이터의 평균을 빼주어야 한다.
test_data /= std # 입력될 데이터, train 데이터의 표준편차로 나누어 주어야 한다.

 

결론적으로 분류지만 시작은 회귀이다.

 

회귀에서 evaluation은 검증 데이터로 한다.

 

 

 

'AI > DL' 카테고리의 다른 글

[빅리더_딥러닝_0729]  (0) 2021.07.29
[빅리더_딥러닝_0728]  (0) 2021.07.28
[빅리더_딥러닝_0727]  (0) 2021.07.27
[딥러닝(Deep_Learning)] 신경망(Neural Network)  (0) 2021.07.26
[딥러닝(Deep_Learning)] 퍼셉트론(Perceptron)  (0) 2021.07.26

+ Recent posts