AI & Data 22

[딥러닝] Optimization (최적화)

What is Optimization? Optimization(최적화)란 해결해고자 하는 문제를 정해진 제약조건 내에서 최적의 결과로 결정하는 것을 의미한다. 즉, 어떠한 상황 속에서 최대의 성능을 내도록 문제를 푸는 과정을 최적화라고 한다. 딥러닝에서의 최적화 역시 모델이 최적의 성능을 발휘할 수 있도록 파라미터들을 조정하는 것을 의미한다. 이전에 최적화 기법으로 "Full - Batch", "Stochastic", "Mini-Batch-Stochastic" Gradient Descent 에 대해서 배운 적이 있다. 이번 포스팅에서는 이 기법들 외에 모델이 더 안정적으로 수렴할 수 있도록 하는 최적화 기법들에 대해서 다룰 생각이다. Momentum (관성)모델에 입력될 데이터의 initialize 지점..

[딥러닝] Activation Function (활성화 함수)

Activation Function 이란?Activation Function $\sigma$ 란 layer 와 layer 사이에 위치한 non-linear function (비선형 함수) Activation Function은 왜 필요한가?? Non-Linear 한 activation function을 사용함으로써 뉴럴넷은 non-linear한 decision boundary를 그릴 수 있기 때문이다. 그리고 linear한 activation function을 사용하면 아무리 많은 layer를 쌓아도 Single Layer Neural Network에 불과하다. 그 이유에 대해서 알아보도록 하자.  이미지의 예시를 살펴보자. Output $y$에 대해 정리해보면 다음과 같다. $\begin{aligned}..

[딥러닝] Gradient Descent (경사하강법) - 심화

이전 포스팅에서 Gradient Descent에 대한 기본적인 내용을 다룬 바 있다. 오늘은 이와 이어지는 내용으로 Gradient Descent의 더 심화된 버전을 다뤄볼 생각이다. 이번 포스팅의 내용에서는 쉬운 이해와 간결성를 위해 Activation Function은 배제하고 생각하겠다. 경사하강법" target="_blank" rel="noopener" data-mce-href="http://경사하강법">http://경사하강법 [딥러닝] Gradient Descent (경사하강법)1. ML as an Optimization Problem기계학습이 해야 할 일을 식으로 정의하면, 주어진 cost function $J(\theta)$에 대해, $J(\theta)$를 최소로 하는 $\hat{\theta..

[딥러닝] Loss Function

1. Loss FunctionLoss(손실)란 정답값과 예측값의 오차를 의미한다 Loss Function의 정의:Neural Network 모델이 예측한 값 $\hat{Y}$와 실제 값 $Y$ 간의 차이의 지표를 의미한다대표적으로 MSE가 있다. $$L(Y, \hat{Y}) = \frac{1}{N} \sum_{1}^{n} (y_i - \hat{y_i})^2$$따라서 이 $L$값이 낮아질수록 NN 모델의 성능은 좋아진다고 볼 수 있다. 즉, 손실함수의 값이 최소가 되도록 weight들의 값을 최적화하는 것이 모델 학습의 목적인 것이다. 2. Deep Learning의 TaskLoss Function은 풀고자 하는 Task에 따라 다르다. 1. Regession (회귀) : 어떤 연속적인 값을 예측하는 Ta..

[딥러닝] PyTorch - Transforms

Transformstorchvision에서는 Computer Vision에 사용되는 다양한 이미지 데이터들에 대해 전처리를 유용하게 할 수 있는 transforms라는 패키지를 제공 Data AugmentationData Augmentation(데이터 증강)은 머신러닝과 딥러닝에서 모델의 성능을 향상시키기 위해 훈련 데이터의 양과 다양성을 인위적으로 증가시키는 기법을 의미한다. PyTorch의 Transforms 내에는 이러한 증강 기법들을 사용할 수 있는 함수들이 많이 내장되어 있다. 1. Gaussian BlurGaussian Blur란 이미지를 흐리게 처리하는 기법을 의미한다. 이는 이미지 내의 불필요한 노이즈를 제거하거나 특정 부분을 강조할 수 있다. Gaussian 필터는 이미지의 픽셀을 중심으..

[딥러닝] PyTorch - Dataset and Data Loader

Dataset과 Data Loader는 Pytorch에서 제공하는 추상 클래스이다.  Dataset (torch.utils.data.Dataset)- Mini-Batch를 구성할 각 data sample들을 하나씩 불러오는 기능을 수행한다 Data Loader (torch.util.data.DataLoader)- Dataset에서 불러온 각 data sample들을 모아서 mini-batch로 구성하는 기능을 수행한다. Dataset의 기본 뼈대1. __init__ 함수2. __len__ 함수3. __getitem__ 함수 위 함수들을 명시해서 Custom Dataset을 만들 수 있다! from torch.utils.data import Datasetclass CustomDataset(Dataset):..

[딥러닝] PyTorch - Tensor

1. TensorTensor(torch.Tensor)Numpy의 배열(Array)와 행렬(Matrix)와 매우 유사한 구조Pytorch에서 scalar, vector, matrix, tensor 등을 표현하는데 사용 Pytorch의 Tensor는 GPU나 TPU같은 연산 가속을 위한 특수한 하드웨어에서 사용할 수 있다Backward Pass에서 계산된 Gradient(.grad)를 저장한다기본적으로 torch.Tensor에 어떤 operation (더하기, 곱셈) 등을 취하면 해당 operation이 Computational Graph에 기록된다 Tensor란?데이터를 표현하는 단위로, 다차원 배열의 일반화된 모습이다. Pytorch에서 Tensor를 가지고 연산을 수행하면, 해당 연산은 Computat..

[딥러닝] DL 실무 기초 개념

1.  데이터 셋1) Training Set모델을 학습시키는 용도Train Set에 대해서 Gradient Descent하여 Loss를 최소화시키는 모델의 weight 최적화2) Validation Set모델의 성능 평가와 Hyper Parameter를 Tuning하는데 쓰이는 데이터셋Train Set에 대해 Overfitting되는 것을 방지하기 위해 사용3) Test Set검증 단계에서 선택한 최적의 모델의 최종 성능을 평가하는데 사용Hyper Parameter Tuning을 과도하게 적용하는 경우 Validation Set에 대해 unintentional overfitting 발생할 수 있다. 2. Overfitting Overfitting(과적합)이란 Unseen Data에 대해서 모델이 일반화되..

[딥러닝] Neural Network

1. 인공 신경망 (Artificial Neural Network) 이란?신경망이라고 불리는 Neural Network는 딥러닝에서 가장 기본이 되는 개념이다. 신경망이란 인간의 뇌의 신경세포인 뉴런의 연결 구조를 말하며, 이러한 신경망을 본떠 만든 네트워크 구조를 인공신경망(Artificial Neural Network)이라고 부른다.인체에 자극이 들어오게 되면 (input) 뉴런은 서로 간에 신호를 전달하여 (neural network) 우리가 특정 신체적 활동을 하도록 한다(output). 이러한 과정을 컴퓨터로 구현한 것이 바로 인공 신경망이다. 2. Neural Network의 구조와 작동 방식  기본적인 Neural Network의 구성은 한 개의 input layer, 한 개 이상의 hidd..

[머신러닝] 회귀 (Regression)

회귀란?회귀라는 뜻은 어떤 지점으로 돌아간다는 뜻이다. 수많은 데이터들을 수집해보면 어떤 점, 즉 평균으로 돌아가게 되는데, 그 점들을 이어보면 하나의 직선을 이루게 되고 이것을 회귀 직선이라고 한다. 그리고 이 회귀 직선을 식으로 나타낸 것을 회귀식이라고 한다. $$y = w_0 + w_1x_1 + w_2x_2 + \cdots + w_nx_n + \epsilon$$ $y$: 독립변수의 영향을 받아 값이 변화하는 수로, 종속변수라 하고 주로 분석하고자 하는 대상이 된다.$x_i$: 다른 변수에 영향을 받지 않고 독립적으로 변화하는 수로, 독립변수라고 한다.$w_i$: 독립변수가 1 변할 때, 종속변수가 얼마나 변하는지 나타내는 수로, 회귀계수라고 부른다.$\epsilon$: 실제값과 회귀값의 차이에 따른..