You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 딥 러닝 손실 함수 on Google, you do not find the information you need! Here are the best content compiled and compiled by the https://chewathai27.com/to team, along with other related topics such as: 딥 러닝 손실 함수 손실함수 종류, 크로스엔트로피 손실함수, 손실함수 사용이유, Loss function 종류, 목적함수 손실함수, 손실함수 미분, AI 손실함수, Pytorch loss function
손실함수는 딥러닝 모델을 학습할 때 정답값과 예측값의 오차를 계산해주는 함수를 의미한다. 문제에 따라서 혹은 데이터의 특성에 따라서 다양한 손실함수들이 사용될 수 있다.
Seminar – 고려대학교 DMQA 연구실
- Article author: dmqm.korea.ac.kr
- Reviews from users: 30259 Ratings
- Top rated: 4.5
- Lowest rated: 1
- Summary of article content: Articles about
Seminar – 고려대학교 DMQA 연구실
Updating … - Most searched keywords: Whether you are looking for
Seminar – 고려대학교 DMQA 연구실
Updating 고려대학교 산업경영공학부 데이터마이닝 및 품질애널리틱스 연구실 - Table of Contents:
[머신러닝] 손실함수의 종류
- Article author: velog.io
- Reviews from users: 27361 Ratings
- Top rated: 3.0
- Lowest rated: 1
- Summary of article content: Articles about [머신러닝] 손실함수의 종류 손실 함수(loss function)란?머신러닝 혹은 딥러닝 모델의 출력값과 사용자가 원하는 출력값의 오차를 의미손실함수는 정답(y)와 예측(^y)를 입력으로 … …
- Most searched keywords: Whether you are looking for [머신러닝] 손실함수의 종류 손실 함수(loss function)란?머신러닝 혹은 딥러닝 모델의 출력값과 사용자가 원하는 출력값의 오차를 의미손실함수는 정답(y)와 예측(^y)를 입력으로 … 손실 함수(loss function)란?머신러닝 혹은 딥러닝 모델의 출력값과 사용자가 원하는 출력값의 오차를 의미손실함수는 정답(y)와 예측(^y)를 입력으로 받아 실숫값 점수를 만드는데, 이 점수가 높을수록 모델이 안좋은 것손실함수의 함수값이 최소화 되도록 하는 가중
- Table of Contents:
머신러닝
손실함수의 종류
[Deep Learning] 손실함수
- Article author: han-py.tistory.com
- Reviews from users: 9216 Ratings
- Top rated: 3.5
- Lowest rated: 1
- Summary of article content: Articles about [Deep Learning] 손실함수 손실 함수란 신경망이 학습 시 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 하는지를 알 수 있는 지표이다. 즉, 손실함수의 … …
- Most searched keywords: Whether you are looking for [Deep Learning] 손실함수 손실 함수란 신경망이 학습 시 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 하는지를 알 수 있는 지표이다. 즉, 손실함수의 … 0, 들어가면서 손실 함수란 신경망이 학습 시 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 하는지를 알 수 있는 지표이다. 즉, 손실함수의 결과값을 가장 작게 만드는 가중치 매개변수를 찾..
- Table of Contents:
태그
관련글
댓글0
공지사항
최근글
인기글
최근댓글
태그
전체 방문자
티스토리툴바
[딥러닝] 손실함수 (loss function) 종류 및 간단 정리 (feat. keras & pytorch)
- Article author: didu-story.tistory.com
- Reviews from users: 24821 Ratings
- Top rated: 3.6
- Lowest rated: 1
- Summary of article content: Articles about [딥러닝] 손실함수 (loss function) 종류 및 간단 정리 (feat. keras & pytorch) 머신러닝 혹은 딥러닝 모델의 출력값과 사용자가 원하는 출력값의 오차를 의미 · 손실함수의 함수값이 최소화 되도록 하는 가중치(weight)와 편향(bias)를 … …
- Most searched keywords: Whether you are looking for [딥러닝] 손실함수 (loss function) 종류 및 간단 정리 (feat. keras & pytorch) 머신러닝 혹은 딥러닝 모델의 출력값과 사용자가 원하는 출력값의 오차를 의미 · 손실함수의 함수값이 최소화 되도록 하는 가중치(weight)와 편향(bias)를 … 시작하며 딥러닝모델 구축 도중 손실함수 때문에 오류가 났다. 아마 손실함수와 활성화 함수의 조합이 맞지 않았던 것 같다. 일단 그래서 이대로는 안되겠다 싶어서 자세한 수식까지는 아니더라도 언제, 어떻게,..난 뭘해도 될거야 꼭 🍀
지나간 일은 후회말자!! 🙂
취업 / IT / IOS / 전자기기 / 리뷰 / 대학생활 / 인턴
github.com/deslog - Table of Contents:
손실 함수(loss function) 란
마치며
티스토리툴바
[딥러닝] 목적/손실 함수(Loss Function) 이해 및 종류
- Article author: needjarvis.tistory.com
- Reviews from users: 48140 Ratings
- Top rated: 3.3
- Lowest rated: 1
- Summary of article content: Articles about [딥러닝] 목적/손실 함수(Loss Function) 이해 및 종류 손실함수의 종류 · MSE(Mean Squared Error) · RMSE(Root Mean Squared Error) · Binary Crossentropy · Categorical Crossentropy. …
- Most searched keywords: Whether you are looking for [딥러닝] 목적/손실 함수(Loss Function) 이해 및 종류 손실함수의 종류 · MSE(Mean Squared Error) · RMSE(Root Mean Squared Error) · Binary Crossentropy · Categorical Crossentropy. 목적/손실 함수(Loss Function) 이란? 딥러닝 혹은 머신러닝은 컴퓨터가 가중치를 찾아가는 과정이다. 일단 아래 예를 보도록 해보자. 4 = 2a + b 6 = 3a + b 이와 같은 문제가 있다고 가정을 해보자, 사람들에게..
- Table of Contents:
Header Menu
Main Menu
[딥러닝] 목적손실 함수(Loss Function) 이해 및 종류목적손실 함수(Loss Function) 이란
손실함수의 종류
그외 손실함수들
‘인공지능 및 데이터과학머신러닝 및 딥러닝’ 관련 글
Sidebar – Right
Sidebar – Footer 1
Sidebar – Footer 2
Sidebar – Footer 3
Copyright © 자비스가 필요해 All Rights Reserved
Designed by JB FACTORY
티스토리툴바
[Deep Learning] 손실함수(Loss Function) 개념
- Article author: heytech.tistory.com
- Reviews from users: 3091 Ratings
- Top rated: 4.5
- Lowest rated: 1
- Summary of article content: Articles about [Deep Learning] 손실함수(Loss Function) 개념 손실 함수(Loss Function)는 지도학습(Supervised Learning) 시 알고리즘이 예측한 값과 실제 정답의 차이를 비교하기 위한 함수입니다. …
- Most searched keywords: Whether you are looking for [Deep Learning] 손실함수(Loss Function) 개념 손실 함수(Loss Function)는 지도학습(Supervised Learning) 시 알고리즘이 예측한 값과 실제 정답의 차이를 비교하기 위한 함수입니다. 💡 목표 손실 함수의 개념과 알고리즘 학습의 수학적 의미에 대해 알아봅니다. 1. 손실 함수의 개념 손실 함수(Loss Function)는 지도학습(Supervised Learning) 시 알고리즘이 예측한 값과 실제 정답의 차이를 비..
- Table of Contents:
Hey Tech
[Deep Learning] 손실함수(Loss Function) 개념 본문💡 목표
1 손실 함수의 개념
2 알고리즘 학습의 수학적 의미
📚참고할 만한 포스팅
티스토리툴바
모델이 학습하는 방법 (1) – 손실함수(Loss function)와 경사하강법(Gradient Descent)
- Article author: yhyun225.tistory.com
- Reviews from users: 33837 Ratings
- Top rated: 4.8
- Lowest rated: 1
- Summary of article content: Articles about 모델이 학습하는 방법 (1) – 손실함수(Loss function)와 경사하강법(Gradient Descent) 1 ) 손실 함수 ( Loss function) 여태까지 다룬 내용을 한 줄로 정리해보면, ‘머신러닝은 타깃과 예측값( 모델에 입력값을 넣었을 때 나오는 값, … …
- Most searched keywords: Whether you are looking for 모델이 학습하는 방법 (1) – 손실함수(Loss function)와 경사하강법(Gradient Descent) 1 ) 손실 함수 ( Loss function) 여태까지 다룬 내용을 한 줄로 정리해보면, ‘머신러닝은 타깃과 예측값( 모델에 입력값을 넣었을 때 나오는 값, … 1 ) 손실 함수 ( Loss function) 여태까지 다룬 내용을 한 줄로 정리해보면, ‘머신러닝은 타깃과 예측값( 모델에 입력값을 넣었을 때 나오는 값, 즉 출력값)의 오차를 최소화하는 방향으로 모델의 파라미터들을 조..
- Table of Contents:
머신러닝딥러닝 공부
모델이 학습하는 방법 (1) – 손실함수(Loss function)와 경사하강법(Gradient Descent) 본문
[ML101] #3. Loss Function
- Article author: brunch.co.kr
- Reviews from users: 30951 Ratings
- Top rated: 3.6
- Lowest rated: 1
- Summary of article content: Articles about [ML101] #3. Loss Function 손실 함수는 고등학교 수학 교과과정에 신설되는 ‘인공지능(AI) 수학’ 과목에 포함되는 기계학습(머신러닝) 최적화의 기본 원리이며 기초적인 개념 … …
- Most searched keywords: Whether you are looking for [ML101] #3. Loss Function 손실 함수는 고등학교 수학 교과과정에 신설되는 ‘인공지능(AI) 수학’ 과목에 포함되는 기계학습(머신러닝) 최적화의 기본 원리이며 기초적인 개념 … [ML101] 시리즈의 두 번째 주제는 손실 함수(Loss Function)입니다. 손실 함수는 다른 명칭으로 비용 함수(Cost Function)이라고 불립니다. 손실 함수는 고등학교 수학 교과과정에 신설되는 ‘인공지능(AI) 수학’ 과목에 포함되는 기계학습(머신러닝) 최적화의 기본 원리이며 기초적인 개념입니다. 이번 시리즈에는 이 “손실 함수”의 개념과
- Table of Contents:
손실 함수(cont.)와 에너지 기반 모델을 위한 손실 함수 · 딥러닝
- Article author: atcold.github.io
- Reviews from users: 17751 Ratings
- Top rated: 4.1
- Lowest rated: 1
- Summary of article content: Articles about
손실 함수(cont.)와 에너지 기반 모델을 위한 손실 함수 · 딥러닝
이 손실은 오직 두 개의 클래스를 가지고 있어서 더 단순한 함수로 줄어들 수 있을 때를 위한 교차 엔트로피의 특별한 경우이다. 예를 들어, 이것은 오토 인코더 … …
- Most searched keywords: Whether you are looking for
손실 함수(cont.)와 에너지 기반 모델을 위한 손실 함수 · 딥러닝
이 손실은 오직 두 개의 클래스를 가지고 있어서 더 단순한 함수로 줄어들 수 있을 때를 위한 교차 엔트로피의 특별한 경우이다. 예를 들어, 이것은 오토 인코더 …
- Table of Contents:
아키텍처 그리고 손실 함수
좋은 손실 함수 설계
손실 함수 예제
일반화된 마진 손실
일반화된 마진 손실 함수 예제
다른 손실들
손실 함수(Loss Function)와 최적화(Optimizer)
- Article author: truman.tistory.com
- Reviews from users: 24256 Ratings
- Top rated: 4.9
- Lowest rated: 1
- Summary of article content: Articles about 손실 함수(Loss Function)와 최적화(Optimizer) 딥러닝을 공부하는 블로그입니다. … 손실 함수는 실제값과 예측값의 차이(loss, cost)를 수치화해주는 함수이다. 오차가 클수록 손실 함수의 값이 … …
- Most searched keywords: Whether you are looking for 손실 함수(Loss Function)와 최적화(Optimizer) 딥러닝을 공부하는 블로그입니다. … 손실 함수는 실제값과 예측값의 차이(loss, cost)를 수치화해주는 함수이다. 오차가 클수록 손실 함수의 값이 … 1. 손실 함수 (Loss Function) 손실 함수는 실제값과 예측값의 차이(loss, cost)를 수치화해주는 함수이다. 오차가 클수록 손실 함수의 값이 크고, 오차가 작을수록 손실 함수의 값이 작아진다. 손실 함수의 값을..딥러닝을 공부하는 블로그입니다.
- Table of Contents:
손실 함수(Loss Function)와 최적화(Optimizer)
티스토리툴바
See more articles in the same category here: Chewathai27.com/to/blog.
고려대학교 DMQA 연구실
OVERVIEW
손실함수(Loss function)는 예측값과 실제값(레이블)의 차이를 구하는 기준을 의미하는 것으로 머신러닝 모델 학습에서 필수 구성요소라고 할 수 있다. 손실함수로 인해 모델의 성능이 달라질 수 있고, 이러한 이유로 머신러닝 모델을 구현하는 사람들은 어떠한 손실함수가 최적일지 고민하게 된다. 본 세미나에서는 손실함수의 기본 개념과 데이터 종류에 따른 대표적인 손실함수 그리고 최적의 손실함수를 찾는 Adaptive Loss function과 AM-LFS를 소개하고자 한다. 참고 문헌: [1] Barron, Jonathan T. “A general and adaptive robust loss function.” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019. [2] Li, Chuming, et al. “Am-lfs: Automl for loss function search.” Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019.
[머신러닝] 손실함수의 종류
손실함수(loss function)
손실 함수(loss function)란?
머신러닝 혹은 딥러닝 모델의 출력값과 사용자가 원하는 출력값의 오차를 의미
손실함수는 정답(y)와 예측(^y)를 입력으로 받아 실숫값 점수를 만드는데, 이 점수가 높을수록 모델이 안좋은 것
손실함수의 함수값이 최소화 되도록 하는 가중치(weight)와 편향(bias)를 찾는 것이 딥러닝 학습의 목표
손실함수의 종류
MSE(Mean Squared Error)
예측한 값과 실제 값 사이의 평균 제곱 오차를 정의한다. 공식이 매우 간단하며, 차가 커질수록 제곱 연산으로 인해서 값이 더욱 뚜렷해진다. 그리고 제곱으로 인해서 오차가 양수이든 음수이든 누적 값을 증가시킨다.
RMSE(Root Mean Squared Error)
MSE에 루트(√)를 씌운 것으로 MSE와 기본적으로 동일하다. MSE 값은 오류의 제곱을 구하기 때문에 실제 오류 평균보다 더 커지는 특성이 있어 MSE에 루트를 씌운 RMSE 은 값의 왜곡을 줄여준다.
Binary Crossentropy
MSE와 RMSE와 다르게 Crossentropy는 개념은 추후의 포스트에서 설명하기로 한다.
실제 레이블과 예측 레이블 간의 교차 엔트로피 손실을 계산한다. 2개의 레이블 클래스(0, 1로 가정)가 있을 때 Binary Crossentropy를 사용하면 좋다.
활성화 함수 : sigmoid 사용 (출력값이 0과 1사이의 값)
수식은 아래와 같으며
아래 함수에 예측값(Yi) 과 실제값(ti) 에 1을 대입하면, 수식은 0에 수렴하게 됨
아래 함수에 예측값(Yi =0)과 실제값(ti = 1)을 대입한다면, 수식은 양의 무한대가 됨
케라스에서 지원하는 binary crossentropy
import tensorflow as tf import keras tf.keras.losses.BinaryCrossentropy(from_logits=False, label_smoothing=0, reduction=”auto”, name=”binary_crossentropy”)
pytorch에서 지원하는 binary crossentropy
신경망의 출력을 가장한 랜덤 벡터에 시그모이드 활성화 함수를 적용해 이진 벡터인 probabilities를 만든다. 그 다음 target을 0과 1로 이루어진 벡터로 만들어서 손실을 계산한다.
import torch import torch.nn as nn bce_loss = nn.BCELoss() sigmoid = nn.Sigmoid() probabilities = sigmoid(torch.randn(4, 1, requires_grad=True) targets = torch.tensor([1, 0, 1, 0], dtype = torch.float32).view(4, 1) loss = bce_loss(probabilities, targets) print(probabilities) print(loss)
Categorical Crossentropy
레이블 클래스가 2개 초과일 경우 binary가 아닌 categorical을 사용한다. 보통 softmax 활성화함수 다음에 연계되어 사용되므로 softmax loss로도 불린다.
출력을 클래스 소속 확률에 대한 예측으로 이해할 수 있는 문제에서 사용
라벨이 (0,0,1,0,0) , (0,1,0,0,0) 과 같이 one-hot encoding 된 형태로 제공될 때 사용 가능
아래 수식에서 C 는 클래스의 개수
실제값과 예측값이 모두 동일하게 될 경우 손실함수의 값은 0이 나옴
실제값과 예측값이 다를 경우 수식에 대입하면 양의 무한대로 발산
케라스에서 지원하는 categorical crossentropy
tf.keras.losses.CategoricalCrossentropy(from_logits=False, label_smoothing = 0, reduction=”auto”, name = ‘catogorical_crossentropy”)
pytorch에서 지원하는 binary crossentropy
import torch import torch.nn as nn ce_loss = nn.CrossEntropyLoss() outputs = torch.randn(3, 5, requires_grad = True) targets = torch.tensor([1, 0, 3], dtype = torch.int64) loss = ce_loss(outputs, targets) print(loss)
랜덤한 벡터를 출력으로 가정하고, 그 target 벡터를 정수 벡터로 만든다. 파이토치의 CrossEntropyLoss 클래스는 각 입력이 클래스 하나에 속하고 각 클래스에는 고유한 인덱스가 있다고 가정하기 때문이다.
Sparse categorical crossentropy
범주형 교차 엔트로피와 동일하게 멀티 클래스 분류에 사용
one-hot encoding 된 상태일 필요 없이 정수 인코딩 된 상태에서 수행 가능
라벨이 (1,2,3,4) 이런식으로 정수형태일때 사용!
tf.keras.losses.sparse_categorical_crossentropy(y_true, y_pred, from_logits=False, axis = 1)
Focal loss
Focal loss는 페이스북의 Lin et al. 이 소개했습니다.
RetinaNet 모델을 학습시키는데 Focal loss가 한단계 객체 탐색기를 향상시킵니다.
Focal loss는 분류 에러에 근거한 loss에 가중치를 부여하는데, 샘플이 CNN에 의해 이미 올바르게 분류되었다면 그것에 대한 가중치는 감소합니다. 즉, 좀 더 문제가 있는 loss에 더 집중하는 방식으로 불균형한 클래스 문제를 해결하였습니다.
Focal loss는 Sigmoid activation을 사용하기 때문에, Binary Cross-Entropy loss라고도 할 수 있습니다.
특별히, r = 0 일때 Focal loss는 Binary Cross Entropy Loss와 동일합니다.
tensorflow를 기반한 keras 코드
from keras import backend as K import tensorflow as tf def focal_loss(gamma=2, alpha=.25): def focal_loss_fixed(y_ture, y_pred): pt_1 = tf.where(tf.equal(y_true, 1), y_pred, tf.ones_like(y_pred)) pt_0 = tf.where(tf.equal(y_true, 0), y_pred, tf.zeros_like(y_pred)) return -K.mean(alpha * K.pow(1. – pt_1, gamma) * K.log(pt_1)) – K.mean((1 – alpha) *K.pow(pt_0, gamma) * K.log(1. – pt_0)) return focla_loss_fixed
pytorch를 기반한 코드
[Deep Learning] 손실함수
반응형
0, 들어가면서
손실 함수란 신경망이 학습 시 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 하는지를 알 수 있는 지표이다. 즉, 손실함수의 결과값을 가장 작게 만드는 가중치 매개변수를 찾아야 한다. 어떻게 찾는지 알아보자.
1. 데이터 학습
머신러닝에서 가장 중요한 것은 무엇일까? 바로 데이터다. 데이터를 통해 패턴을 찾고 그 패턴을 통해 특징을 추출한다. 특징이란 데이터 중에 본질적이고 중요한 데이터를 선별하는 것이고, 선별된 특징으로 패턴을 머신러닝(기계학습)하는 것이다. 이때 이미지의 특징은 보통 벡터로 표현되는데, 컴퓨터 비전 분야에서는 SIFT, SURF, HOG 등의 특징을 사용한다. 이런 특징을 사용하여 이미지 데이터를 벡터로 변환하다. 변환 후에는 지도학습의 대표 분류법인 SVM, KNN등으로 학습을 할 수 있다. 즉, 수집된 데이터를 통해 규칙을 찾아내는 것이 기계가 하는 일이라고 할 수 있다. 그러나 여기서는 특징 자체를 사람이 설계하게 된다. 다시 정리해 보면 이미지 데이터에서 특징을 추출하고 결과를 내는 방식은 아래 3가지로 나눌 수 있다.
이미지 => 사람에 의해 만들어진 알고리즘 => 결과 이미지 => 사람이 생각한 특징(FIFT, HOG 등) => 기계학습(SVM, KNN 등) => 결과 이미지 => Deep Learning(신경망) => 결과
3번의 경우, 신경망은 데이터를 그대로 학습한다. 즉, 신경망은 이미지에 포함된 중요한 특징까지도 기계가 합습한다. 이를 종간간 기계학습(End-To-End)라고 할 수 있다. 처음부터 끝까지 입력 데이터에서 목표한 축력 데이터를 사람의 개입 없이 얻을 수 있다.
2. 훈련데이터(Training Data)와 시험데이터(Test Data)
Tensorflow로 러닝을 해본 사람들은 경험 했을 텐데, 처음에 데이터를 렌던으로 훈련데이터와 시험데이터를 분류한 경험이 있을 것이다. 이렇게 나누는 이유는 우리는 학습한 데이터만 인식하고 분류하는 걸 원하지 않고 범용적으로 분류가 되길 원한다. 그렇기 때문에 훈련데이터와 시험데이터를 나눈다.
훈련 데이터를 사용하여 최적의 매개변수를 찾는다.
시험 데이터를 사용하여 앞에 훈련한 모델의 실력을 평가한다.
+ 범용적이라는 말이 헷갈릴 수도 있다. 다시 말하면, 한 데이터 셋에만 지나치게 최적화 된 상태를 Overfitting 이라고 하고 비범용적이라고 할 수 있다.
3. 손실 함수(Loss Funtion)
신경망학습에서 현재의 상태를 하나의 지표로 표현가능하다. 그 지표를 기준으로 최적의 가중치 매개변수 값을 탐색한다. 신경망 학습에서 사용하는 지표는 손실함수(Loss Function)이다. 그리고 일반적으로 평균 제곱 오차와 교차 엔트로피 오차를 사용한다.
+ 정리하면 손실함수는 신경망 성능이 안 좋은 정도를 나타내며, 수치가 낮을수록 훈력 데이터를 잘 처리하는 것이다.
3.1 평균제곱오차(Mean Squared Error, MSE)
(보통 분류 시 MSE 보다 cross entropy를 많이 사용한다. 그 이유에 대해서는 cross entropy를 블로그에서 검색하보자 참고하자)
먼저 수식을 보면 다음과 같다.
y : 신경망의 출력(각각의 뉴런의 output)
t : 정답 레이블
k : 데이터의 차원 수
t과 t의 예시를 보자. 여기서는 손글씨의 숫자를 알아보는 예시이다. 숫자는 0부터 9까지 있으며, t의 인덱스 값이 숫자라고 판단하고 보면 된다.
y = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0] t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
앞에서 공부를 했다면 y,t가 무슨 말인지 쉽게 알겠지만, 모르는 사람들을 위해서 좀 더 자세하게 적어보겠다. 이론적인 이야기를 먼저 하면 y는 소프트맥스 함수의 출력이다. 그리고 t는 원-핫 인코딩 이라고 한다.
우리가 예시를 든 것은 손글씨로 적은 숫자를 인식하는 것이고, 해결하고자 하는 문제는 적혀진 숫자를 보고 0~9사이의 숫자 중에 어느 것인지를 알아 내는 것이다. y는 인식하려는 이미지에 그려진 내용이 0~9까지 각각이 얼마나 비슷한가를 확률로 나타낸 것이다. 위의 예를 보면 내가 분석하고자 하는 이미지가 0일 확률이 10프로, 1일 확률이 5프로, 2일 확률이 60프로로 이런식으로 알려준다고 생각하면 된다. t는 y에서 가장 높은 확률만 1로 표현하고 나머지를 0으로 표현함으로 컴퓨터가 판단한 숫자는 2라고 알려준다고 생각 하면 될것이다.
+ 사실 이 부분만 디테일하게 적어도 공부할게 많다. 더 궁금한 사람들은 나의 블로그에서 ‘신경망’을 검색해보면 관련 글들이 있다. 참고하자.
다시 식으로 넘어오면, MSE는 각 데이터의 차원에서의 원소의 출력 값과 정답 레이블의 차를 제곱한 후에 그 총합을 구하는 것이다. 이함수를 사용한 예를 보자.
# 예 1. >>> t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0] >>> y = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0] >>> mean_squared_error(np.array(y), np.array(t)) 0.0975000000 # 예 2. >>> t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0] >>> y = [0.1, 0.05, 0.1, 0.0, 0.05, 0.1, 0.0, 0.6, 0.0, 0.0] >>> mean_squared_error(np.array(y), np.array(t)) 0.5975000000
예1을 보면 판단하려는 이미지에 적힌 숫자가 2일 확률이 가장 높다고 하였고, 두번째 예시는 7인 확률이 가장 높다고 하였다. 상식적으로 봐도 예 1이 더 정확한 것을 알 수 있다. 컴퓨터 기준으로 보면 예1이 정답에 더 가까워 보임을 알 수 있다.
3.2 교차 엔트로피 오차(Cross Entropy Error, CEE)
손실 함수로 MSE 외에도 CEE도 자주 사용한다. 먼저 수식부터 보자.
log 밑이 e인 자연로그이다
y : 신경망의 출력
t : 정답 레이블
정답 레이블이 2라고 해보자. 이때의 신경망 출력이 0.6이라면 교차 엔트로피 오차는 -log0.6 = 0.51 이다. 같은 조건에서 신경망 출력이 0.1이라면 -log0.1 = 2.30이 된다. 즉, 교차 엔트로피 오차는 정답일 떄의 출력이 전체 값을 정하게 된다.
+ 쉽게 말하면 곱하기니까 t의 정답 레이블에서 0인 부분은 곱해도 0이 되므로 1인 부분이 전체 값을 정한다.
아래의 자연로그 그래프를 보자.
포인트는 y의 값이 1에 가까워 질수록 결과값은 작아진다. 특정 인덱스에서 나타내는 특정 숫자인 확률이 클수록 1에 가깝고, 1에 가까울 수록 loss 값이 작아진다. 결과 값이 작을 수록 정답일 가능성이 높다는 것을 아음의 예로 판단 할 수 있다.
#예1 >>> t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0] >>> y = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0] >>> cross_entropy_error(np.array(y), np.array(t)) 0.51082 #예2 >>> t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0] >>> y = [0.1, 0.05, 0.1, 0.0, 0.05, 0.1, 0.0, 0.6, 0.0, 0.0] >>> cross_entropy_error(np.array(y), np.array(t)) 2.30258
3.3 미니배치학습
훈련 데이터를 보면 보통 60,000 개에서 많게는 수천만개까지도 있을 수 도 있다. 이 많은 데이터를 대상으로 전부 손실함수를 계산하는 것은 현실적이지 않다. 이런 경우 데이터 일부를 추려 전체의 근사치로 이용한다. 신경망 학습에서 훈련데이터로부터 일부만 골라 합습을 하는 것을 미니배치(Mini-Batch)라고 한다. 예를들면 6만장의 훈련 데이터 중에서 100장을 무작위로 뽑아 학습하는 것을 미니배치라고 한다.
우리는 머신러닝 문제를 해결 할 때 훈련데이터에 대한 손실 함수의 값을 구하고, 그 값을 최대한 줄여주는 매개변수를 찾는다. 즉, 우리는 훈련 데이터를 대상으로 손실 함수 값을 구해야한다. 그렇다면 데이터 하나에 대한 손실 함수가 아니라 훈련데이터 전체를 반영한 손실함수의 합을 구하는 방법을 알아보자.
위에서 배운 내용중 교차 엔트로피 오차 수식은 아래와 같다.
위의 식과 다른점은 데이터의 갯수인 N이 포함된 것이다. nk는 n번째 데이터의 k번째 값을 의미한다. 그리고 마지막에 N으로 나눠 정규화를 한다. 이러한 방식으로 진행하면 훈련데이터 개수와 상관없이 통일된 지표를 구할 수 있고 평균 손실 함수를 구할 수 있다.
4. 손실함수(Loss Function)을 쓰는이유
나는 처음으로 손실함수를 접했을 때, 왜 정확도를 안 구하고, loss값을 구할까?라는 질문을 했다. 이러한 의문은 ‘미분’이라는 역할을 생각해 보면 해결 할 수 있다. 신경망 학습에서는 최적의 매개변수 (가중치와 편향) 값을 탐색할 떄 손실 함수의 값을 가능한 작게 하는 매개변수 값을 찾는다. 이 때 매개변수의 미분을 계산하고, 그 미분 값을 단서로 매개변수의 값을 서서히 갱신하는과정을 반복하게 된다.
가령 여기에 가상의 신경망이 있고 그 신경망의 어느 한 가중치 매개변수에 주목한다고 할 때 그 가중치 매개변수의 손실함수의 미분이란 가중치 매개변수의 값을 아주 조금 변화 시켰을 때 손실 함수가 어떻게 변하냐의 의미이다. 만약 이 미분 값이 음수라면 그 가중치 매개변수를 양의 방향으로 변화시켜 손실 함수의 값을 줄일 수 있다. 반대로, 이 미분 값이 양수라면 그 가중치 매개변수를 음의 방향으로 변화시켜 손실 함수의 값을 줄일 수 있다. 그러나 미분 값이 0 이라면 가중치 매개변수를 어느 쪽으로 움직여도 손실 함수의 값은 달라지지 않는다. 그래서 그가중치 매개변수의 갱신은 거기서 멈춘다. + 이부분도 신경망 부분에서 자세히 다뤘다.
정리하면, 손실함수는 매개변수의 변화에 연속적으로 변화하지만, 정확도는 매개변수의 변화에 둔감하고, 변화가 있더라도 불연속적으로 변화하기 때문에 미분이 불가능하다. 미분이 안되면 최적화를 할 수 없어서 정확도가 아닌 손실 함수를 지표를 삼아 학습을 하는 것이다.
반응형
So you have finished reading the 딥 러닝 손실 함수 topic article, if you find this article useful, please share it. Thank you very much. See more: 손실함수 종류, 크로스엔트로피 손실함수, 손실함수 사용이유, Loss function 종류, 목적함수 손실함수, 손실함수 미분, AI 손실함수, Pytorch loss function