딥러닝
-
Convolution layer의 특징 feature의 위치에 구애 받지 않는다. 데이터셋의 x와 y의 구성에 따라 자동으로 탐지해야 할 패턴을 추출한다. 내부 kernel은 해당 패턴을 추출하기 위한 형태로 자동으로 구성된다. 같은 입출력을 갖는 FC Layer에 비해 더 적은 weight를 갖는다. 병렬 계산 구성이 쉬우므로, GPU에서의 연산이 빠르다. 단점: FC Layer에 비해 입출력 크기가 계산이 까다로워. 네트워크 구성이 쉽지 않다. Dimenstion Reduction in CNN Dimension Reduction: 고차원 공간의 sparse한 데이터를 저차원 공간에 mapping하는 방식 그러나 [3X3 + 1 padding]의 conv layer는 입/출력 텐서의 크기가 같다. 그래..
CNNConvolution layer의 특징 feature의 위치에 구애 받지 않는다. 데이터셋의 x와 y의 구성에 따라 자동으로 탐지해야 할 패턴을 추출한다. 내부 kernel은 해당 패턴을 추출하기 위한 형태로 자동으로 구성된다. 같은 입출력을 갖는 FC Layer에 비해 더 적은 weight를 갖는다. 병렬 계산 구성이 쉬우므로, GPU에서의 연산이 빠르다. 단점: FC Layer에 비해 입출력 크기가 계산이 까다로워. 네트워크 구성이 쉽지 않다. Dimenstion Reduction in CNN Dimension Reduction: 고차원 공간의 sparse한 데이터를 저차원 공간에 mapping하는 방식 그러나 [3X3 + 1 padding]의 conv layer는 입/출력 텐서의 크기가 같다. 그래..
2022.06.24 -
MNIST 데이터는 28*28=784차원의 벡터로 나타낼 수 있다. 샘플들이 sparse하게 분포되어 있을 것이다. (흰 부분보다 검은 부분에 밀집되어 있을 것) 이러한 아이디어로 부터 나온 것이 Manifold Hypothesis이다. Manifold Hypothesis 고차원 공간의 샘플들이 저차원 manifold의 형태로 분포해 있다는 가정 → manifold를 해당 차원의 공간에 mapping할 수 있다. 고차원의 데이터를 잘 표현하는 manifold를 통해 샘플 데이터의 특징을 파악할 수 있다. Dimensionality Reduction에는 linear한 방법(PCA, LDA...)와 Non-linear(AutoEncoder, t-sne...)가 존재하는데, 딥러닝은 Non-linear Dim..
Manifold HypothesisMNIST 데이터는 28*28=784차원의 벡터로 나타낼 수 있다. 샘플들이 sparse하게 분포되어 있을 것이다. (흰 부분보다 검은 부분에 밀집되어 있을 것) 이러한 아이디어로 부터 나온 것이 Manifold Hypothesis이다. Manifold Hypothesis 고차원 공간의 샘플들이 저차원 manifold의 형태로 분포해 있다는 가정 → manifold를 해당 차원의 공간에 mapping할 수 있다. 고차원의 데이터를 잘 표현하는 manifold를 통해 샘플 데이터의 특징을 파악할 수 있다. Dimensionality Reduction에는 linear한 방법(PCA, LDA...)와 Non-linear(AutoEncoder, t-sne...)가 존재하는데, 딥러닝은 Non-linear Dim..
2022.06.23 -
차원의 저주 문제 : 차원이 높을수록 데이터는 희소(sparse)하게 분포되어 학습이 어렵다는 문제점이 있다. PCA (Principal Component Analysis) : Linear Dimension Reduction n차원의 공간에 샘플들의 분포가 주어져있을 때, 분포를 잘 설명할 수 있는 axis를 찾아내는 과정이다. 분포를 잘 설명할 수 있는 axis는 두 가지 조건을 만족해야 한다. 1. 빨간점 사이의 거리의 합이 최대가 되어야 한다. 2. 검은 점과 검은 선 사이 거리의 합이 최소가 되어야 한다. : projection된 거리가 잃어버린 정보이기 때문에 최소가 되어야 한다. (손실압축) 두 조건을 만족시켜야 차원을 축소해도 데이터를 잘 설명할 수 있다. 아래는 두 조건을 만족시키지 않는 ..
PCA차원의 저주 문제 : 차원이 높을수록 데이터는 희소(sparse)하게 분포되어 학습이 어렵다는 문제점이 있다. PCA (Principal Component Analysis) : Linear Dimension Reduction n차원의 공간에 샘플들의 분포가 주어져있을 때, 분포를 잘 설명할 수 있는 axis를 찾아내는 과정이다. 분포를 잘 설명할 수 있는 axis는 두 가지 조건을 만족해야 한다. 1. 빨간점 사이의 거리의 합이 최대가 되어야 한다. 2. 검은 점과 검은 선 사이 거리의 합이 최소가 되어야 한다. : projection된 거리가 잃어버린 정보이기 때문에 최소가 되어야 한다. (손실압축) 두 조건을 만족시켜야 차원을 축소해도 데이터를 잘 설명할 수 있다. 아래는 두 조건을 만족시키지 않는 ..
2022.06.23 -
Information(정보량) 불확실성(Uncertainty)를 나타내는 값 확률이 높아질수록 → 0에 가까워지고 확률이 낮아질수록 →∞에 가까워진다. (불확실하다 == 일어날 확률이 낮다.) 1. 올 여름 대한민국의 평균 여름 기온은 27도 이다. → 높은 확률로 가능 2. 올 여름 대한민국의 평균 여름 기온은 3도 이다. → 이럴 경우는 거의 0에 가깝다. 그러나 만약 사실이라면 이 것은 큰 정보가 된다. ∴ 확률이 낮을수록 큰 정보량을 갖고 있다. Entropy 정보량의 기대값(평균) 분포의 평균적인 uncertainty를 나타내는 값 Cross Entropy 분포 P의 관점에서 본 분포 Q의 정보량의 평균 두 분포가 비슷할수록 작은 값을 갖는다. KL-Divergence와 Cross Entropy..
Information & EntropyInformation(정보량) 불확실성(Uncertainty)를 나타내는 값 확률이 높아질수록 → 0에 가까워지고 확률이 낮아질수록 →∞에 가까워진다. (불확실하다 == 일어날 확률이 낮다.) 1. 올 여름 대한민국의 평균 여름 기온은 27도 이다. → 높은 확률로 가능 2. 올 여름 대한민국의 평균 여름 기온은 3도 이다. → 이럴 경우는 거의 0에 가깝다. 그러나 만약 사실이라면 이 것은 큰 정보가 된다. ∴ 확률이 낮을수록 큰 정보량을 갖고 있다. Entropy 정보량의 기대값(평균) 분포의 평균적인 uncertainty를 나타내는 값 Cross Entropy 분포 P의 관점에서 본 분포 Q의 정보량의 평균 두 분포가 비슷할수록 작은 값을 갖는다. KL-Divergence와 Cross Entropy..
2022.06.23 -
Kullback-Leibler Divergence 두 분포 사이의 다름을 측정한다. (assymmetric이여서 거리라고 할 수는 없다.) 두 분포가 비슷할 수록 작은 값을 반환하고 두 분포가 같으면 KL-Divergence의 값은 0이다. DNN Optimization using KL-Divergence KL-Divergence를 minimize하는 방향으로 DNN을 Optimization을 할 수 있다. KL-Divergence는 두 분포간의 dissimilarity를 측정해주기 때문에 ground truth 확률분포와 DNN가 나타내는 확률분포간의 dissimilarity를 측정하고 이를 mimimize하도록 gradient descent를 해주면 된다.
KL-DivergenceKullback-Leibler Divergence 두 분포 사이의 다름을 측정한다. (assymmetric이여서 거리라고 할 수는 없다.) 두 분포가 비슷할 수록 작은 값을 반환하고 두 분포가 같으면 KL-Divergence의 값은 0이다. DNN Optimization using KL-Divergence KL-Divergence를 minimize하는 방향으로 DNN을 Optimization을 할 수 있다. KL-Divergence는 두 분포간의 dissimilarity를 측정해주기 때문에 ground truth 확률분포와 DNN가 나타내는 확률분포간의 dissimilarity를 측정하고 이를 mimimize하도록 gradient descent를 해주면 된다.
2022.06.23 -
가상의 확률 분포를 모사하는 확률 분포의 파라미터(θ)를 찾고 싶다. → 목표 확률 분포로부터 데이터를 수집 → Likelihood function에 θ를 입력하고, 데이터들의 θ에 대한 확률 값의 곱을 통해 Likelihood를 최대화 하는 파라미터 찾기 ▪Likelihood라는 값을 통해 데이터를 얼마나 잘 설명하는지 알 수 있음 ▪Gradient Ascent를 통해 찾을 수 있음 Likelihood Function 입력으로 주어진 확률 분포(파라미터: μ, σ)가 데이터를 얼마나 잘 설명하는지 나타내는 점수(Likelihood)를 출력하는 함수 입력: 확률 분포를 표현하는 파라미터 출력: 데이터를 설명하는 정도 데이터를 잘 설명하는지 알 수 있는 방법 데이터가 해당 확률 분포에서 높은 확률 값을 가..
MLE(Maximum Likelihood Estimation)가상의 확률 분포를 모사하는 확률 분포의 파라미터(θ)를 찾고 싶다. → 목표 확률 분포로부터 데이터를 수집 → Likelihood function에 θ를 입력하고, 데이터들의 θ에 대한 확률 값의 곱을 통해 Likelihood를 최대화 하는 파라미터 찾기 ▪Likelihood라는 값을 통해 데이터를 얼마나 잘 설명하는지 알 수 있음 ▪Gradient Ascent를 통해 찾을 수 있음 Likelihood Function 입력으로 주어진 확률 분포(파라미터: μ, σ)가 데이터를 얼마나 잘 설명하는지 나타내는 점수(Likelihood)를 출력하는 함수 입력: 확률 분포를 표현하는 파라미터 출력: 데이터를 설명하는 정도 데이터를 잘 설명하는지 알 수 있는 방법 데이터가 해당 확률 분포에서 높은 확률 값을 가..
2022.06.23 -
AutoEncoder x를 입력받아서 X̂이라는 출력을 반환하게 되는데 이 x와 X̂의 차이를 최소로 하도록 학습 ∴ 입력을 그대로 뱉어내도록 학습 bottleneck을 통과시키는 과정에서 압축과 해제를 실행 인코더는 입력(x)의 정보를 최대한 보존하도록 손실 압축을 수행 (X̂을 복원하는데 있어서 가장 중요한 정보를 뽑아내는 방법을 학습) 디코더는 중간 결과물(z)의 정보를 입력(x)와 같아지도록 압축 해제(복원)을 수행 ⇨ 오토인코더는 복원을 성공적으로 하기 위해 압축과 해제를 반복하며 특징(feature)을 추출하는 방법을 자동으로 학습 Encoder 복원에 필요한 정보를 중심으로 손실 압축을 수행 : 필요 없는 정보는 버리게 된다. (e.g 고양이 얼굴을 학습할 때: 고양이 귀는 2개이다.) Bo..
AutoencoderAutoEncoder x를 입력받아서 X̂이라는 출력을 반환하게 되는데 이 x와 X̂의 차이를 최소로 하도록 학습 ∴ 입력을 그대로 뱉어내도록 학습 bottleneck을 통과시키는 과정에서 압축과 해제를 실행 인코더는 입력(x)의 정보를 최대한 보존하도록 손실 압축을 수행 (X̂을 복원하는데 있어서 가장 중요한 정보를 뽑아내는 방법을 학습) 디코더는 중간 결과물(z)의 정보를 입력(x)와 같아지도록 압축 해제(복원)을 수행 ⇨ 오토인코더는 복원을 성공적으로 하기 위해 압축과 해제를 반복하며 특징(feature)을 추출하는 방법을 자동으로 학습 Encoder 복원에 필요한 정보를 중심으로 손실 압축을 수행 : 필요 없는 정보는 버리게 된다. (e.g 고양이 얼굴을 학습할 때: 고양이 귀는 2개이다.) Bo..
2022.06.22 -
일반적인 Training / Inference Design model.py: Architecture가 정의된 클래스 trainer.py: Model을 학습하기 위한 코드 dataloader.py : 데이터를 불러와 전처리를 수행하고 신경망에 넣기 좋은 형태로 변환 train.py: 사용자로부터 hyper-param을 받아 Model과 Trainer, Loader을 선언하고 학습 predict.py: 사용자로부터 Model과 input을 받아 추론을 진행 일반적인 Model Training Procedure
Training / Inference Design & Model Training Procedure일반적인 Training / Inference Design model.py: Architecture가 정의된 클래스 trainer.py: Model을 학습하기 위한 코드 dataloader.py : 데이터를 불러와 전처리를 수행하고 신경망에 넣기 좋은 형태로 변환 train.py: 사용자로부터 hyper-param을 받아 Model과 Trainer, Loader을 선언하고 학습 predict.py: 사용자로부터 Model과 input을 받아 추론을 진행 일반적인 Model Training Procedure
2022.06.22