경사하강법 - Gradient Desent
·
딥러닝 (Deep Learning)/[04] - 학습 및 최적화
1. 손실함수 정의손실 함수는 모델의 예측값과 실제 값의 차이를 측정하는 함수이다.모델의 성능을 평가하는 기준으로, 손실 값이 클수록 모델의 예측이 실제 값과 많이 다르다는 것을 의미하고,손실 값이 작을수록 모델의 예측이 실제 값에 가깝다는 것을 의미합니다. 주요 역할모델 평가: 학습 과정에서 모델의 성능을 평가합니다.학습 지표: 손실 값을 최소화하는 방향으로 모델의 가중치를 조정합니다.예시회귀 문제: 평균 제곱 오차(Mean Squared Error, MSE)분류 문제: 교차 엔트로피 손실(Cross-Entropy Loss)2. 경사하강법 (Gradient Descent) 정의경사하강법은 손실 함수를 최소화하기 위해 모델의 가중치를 조정하는 최적화 알고리즘이다.이 방법은 손실 함수의 기울기를 계산하고,..
경사하강법(GD) vs 확률적경사하강법(SGD) vs 미니 배치 경사하강법(MBGD)
·
딥러닝 (Deep Learning)/[04] - 학습 및 최적화
1. Optimizer 란?먼저 우리가 만든 모델에 Training Data가 들어가면 Output 값이 나옵니다.우리는 그 Output값이 목표로 하는 타겟값과 가까워지도록 Error Function ( = loss function)을 설정하고 Error 값이 줄어드는 방향으로 학습시키기 위해 각 Weight와 갖는 Gradient값을 계산합니다.이를 활용해 weight들을 다시 설정합니다.1~3 과정을 반복(Epoch)하며 최적의 Weight를 갖는 모델을 찾아냅니다.→ 여기서 2~4 과정을 Optimization 과정, 즉 최적화 과정이라 합니다. 2. 경사 하강법 (Gradient Desent)개념전체 데이터셋을 사용하여 손실 함수의 기울기(gradient)를 계산한 후, 그 기울기를 따라 모델의..
딥러닝 학습 순서 요약
·
딥러닝 (Deep Learning)/[01] - 딥러닝 이란?
1. 좋은 weight를 찾는 것이 우리의 목표입니다. 그래서 처음에는 랜덤한 값을 넣습니다.딥러닝의 목표는 주어진 데이터에서 최적의 가중치(weight)를 찾고, 모델이 데이터를 잘 예측 것이다.처음에는 가중치를 임의의 값으로 설정하고 시작한다2. 그리고 나서 데이터를 넣고 예측을 하게 됩니다.주어진 입력 데이터(input data)를 모델에 넣으면, 모델은 현재의 가중치에 기반해 예측값을 출력합니다.3. 당연히 처음에는 예측을 못합니다.초기 가중치는 랜덤이기 때문에, 처음 예측은 정답과 많이 다를 수 있습니다. 이는 모델이 아직 학습되지 않았기 때문입니다. 4. 정답이랑 비교해서 얼마나 예측을 못했는지 Loss 함수를 통해 Loss라는 계산값을 얻습니다.예측값과 실제 정답(label)을 비교하여, 예..
선형 회귀 (Linear Regression) _ 2 - 경사하강법, 데이터 표준화
·
딥러닝 (Deep Learning)/[04] - 학습 및 최적화
경사하강법지난 블로그에서 손실함수 (Loss funtion)은손실함수는 실제값(target)과 예측값(y) 간의 차이를 수치적으로 측정하는 함수 라고 언급 했습니다. 1. 경사하강법이란??모델의 손실함수 값을 최소화하기 위해 사용하는 최적화 알고리즘 입니다.경사하강법은 현재의 모델 파라미터(예: 가중치, 편향)에서손실 함수의 기울기(경사)를 계산하고,이 기울기의 반대 방향으로 파라미터를 조금씩 업데이트해 나가는 방식으로 작동한다.이렇게 하면 손실 함수의 값이 점차 줄어들면서,최종적으로 최솟값(최적의 파라미터)에 도달할 수 있게 됩니다.단계별 설명초기화: 모델의 파라미터를 임의의 값으로 설정기울기 계산: 손실 함수의 기울기를 계산업데이트: 기울기의 반대 방향으로 파라미터를 조정반복: 위 과정을 반복하여 손..
선형 회귀 (Linear Regression) _ 1 - 상관관계, pytorch 모델 코드, loss funtion
·
딥러닝 (Deep Learning)/[04] - 학습 및 최적화
상관관계두 변수 간의 관계를 나타내는 통계적 개념이다.상관계수는 보통 -1 ~ 1 사이의 값을 가지며, 아래와 같은 의미를 갖고 있다. 1: 완벽한 양의 상관관계. 두 변수는 정확히 같은 방향으로 움직인다.0: 상관관계 없음. 두 변수 간에 선형 관계가 없습니다.-1: 완벽한 음의 상관관계. 두 변수는 정확히 반대 방향으로 움직인다.import numpy as npimport matplotlib.pyplot as plt# 두 변수의 예제 데이터x = np.array([1, 2, 3, 4, 5])y = np.array([2, 4, 6, 8, 10]) # x의 값에 대해 완벽한 양의 상관관계를 가짐# 상관계수 계산corr_matrix = np.corrcoef(x, y)corr_coefficient = co..
CNN 모델 만들기 [1편]
·
딥러닝 (Deep Learning)/[03] - 모델
챕터 1 에서는 딥러닝이 무엇인가그리고 신경망 모델을 통해서 간단한 학습 코드를 했습니다.챕터 2 에서는 유명한 CNN 모델에 대해서 이야기 할까 합니다.실제 수많은 이미지를 분류하는 모델로써 현재 딥러닝 발전에 많은 영향을 미쳤습니다. 1. CNN 은 무엇인가?만약 4K UHD (840만개 픽셀) 이미지를 인공신경망으로 처리하려면 층마다 840만개 가중치가 필요합니다.하지만 컴퓨터 계산하기에는 무리가 있고 이를 해결하고자 합성곱 (Convolution)을 만들게 됩니다. 합성곱 (Convolution) 을 간단하게 이야기 하면,작은 필터를 이용해 이미지로 부터 특징을 추출해내는 방법 입니다. 예를 들어 아래 이미지를 학습한다고 했을 때,이미지는 RGB 3개의 채널로 이루어져 있는데, 여기서 특징으로 생..
다중 분류 Mnist
·
딥러닝 (Deep Learning)/[03] - 모델
딥러닝을 처음 배우면 자주 접하게 되는 손글씨 다중 분류 문제 입니다.기본을 다지기도 좋고 pytorch 프레임워크의 구조 파악을 쉽게 하실 수 있습니다.뒤에 많은 실습 문제들을 설명하겠지만, 큰 틀은 크게 여기서 벗어나지 않습니다. 1. 데이터 살펴보기Mnist 데이터를 활용하여 숫자 손글씨 이미지가 랜덤으로 있을때,정확도 95% 이상의 결과를 받을 수 있습니다.코드 기반으로 이제 설명 하겠습니다. # 1. 데이터 살펴보기import matplotlib.pyplot as pltfrom torchvision.datasets.mnist import MNISTfrom torchvision.transforms import ToTensor# # train=True, train=Flase 의 의미는 학습용 데이터..
Pytorch 를 활용한 간단한 회귀분석
·
딥러닝 (Deep Learning)/[03] - 모델
1. 회귀분석  회귀는 개별적인 레이블 대신에 연속적인 값을 예측하는 문제 입니다.예를 들어 기상 데이터가 주어졌을 때 내일 기온을 예측하거나, 소프트웨어 명세가 주어졌을 때 소프트웨어 프로젝트가 완료될 시간을 예측하는 것입니다.우리는 scikit-learn 을 활용해 보스턴 집값을 에측하는 학습 코드가 이번 내용 입니다.(* scikit-learn - 머신러닝용 파이썬 라이브러리 및 다양한 데이터셋을 제공)2. 데이터 살펴보기보스턴 집값 데이터셋을 코드로 먼저 살펴보겠습니다.from sklearn.datasets import load_bostondataset = load_boston()print(dataset.keys())# 출력# dict_keys(['data', 'target', 'feature_n..
딥러닝 프레임워크 추천
·
딥러닝 (Deep Learning)/[01] - 딥러닝 이란?
1. Pytorch 프레임워크 종류딥러닝 모델에는 수많은 알고리즘이 있습니다.데이터 처리, 이미지처리, 가중치계산 등 만들어야 할 알고리즘이 한두개가 아닙니다.하나 하나 직접만들기에는 무리가 있기 때문에 프레임워크를 사용하여 만들 수 있습니다.대표적인 프레임워크는 텐서플로, 케라스. 파이토치 가 있습니다.저는 개인적으로 파이토치를 사용 하고 있습니다. 왜 파이토치 인가?어떤 프레임워크가 점유율이 높을까? 생각해보면 답이 있습니다.현재 파이토기가 가장 큰 점유율을 보이고 있으며 대형회사부터 대학 연구실까지 많은 사람이 이용하고 있습니다.파이토치 코드는 파이썬 본래의 코드와 유사해 직관적이라는 장점도 있으며,처음 딥러닝을 접하는 사람에게는 파이토치가 좋다고 생각 합니다.물론 특정 업무나 특성 때문에 텐서플로..