당신은 주제를 찾고 있습니까 “loss function 종류 – ㄹㅇ 쉬운 딥러닝 3강 : 손실함수 (loss function) 로 컴퓨터에게 오차를 알려줘야함“? 다음 카테고리의 웹사이트 https://chewathai27.com/you 에서 귀하의 모든 질문에 답변해 드립니다: Chewathai27.com/you/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 코딩애플 이(가) 작성한 기사에는 조회수 17,524회 및 좋아요 209개 개의 좋아요가 있습니다.
- 손실함수(loss function)
- 손실함수의 종류
- MSE(Mean Squared Error)
- RMSE(Root Mean Squared Error)
- Binary Crossentropy.
- Categorical Crossentropy.
loss function 종류 주제에 대한 동영상 보기
여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!
d여기에서 ㄹㅇ 쉬운 딥러닝 3강 : 손실함수 (loss function) 로 컴퓨터에게 오차를 알려줘야함 – loss function 종류 주제에 대한 세부정보를 참조하세요
근데 컴퓨터에게 오차를 최소화시키는 w값을 찾는다고 시키는게 머신러닝이랬는데
그럼 컴퓨터는 되물을겁니다. 오차가 뭐임?
그러니 오차가 뭔지 정의해보도록 합시다.
전체 강의는 https://codingapple.com 에서 이용가능합니다.
구독자용 10% 할인 코드 YT123
loss function 종류 주제에 대한 자세한 내용은 여기를 참조하세요.
[딥러닝] 목적/손실 함수(Loss Function) 이해 및 종류
손실함수의 종류 · MSE(Mean Squared Error) · RMSE(Root Mean Squared Error) · Binary Crossentropy · Categorical Crossentropy.
Source: needjarvis.tistory.com
Date Published: 9/1/2021
View: 9980
[딥러닝] 손실함수 (loss function) 종류 및 간단 정리 (feat. keras …
손실 함수(loss function) 란? · 머신러닝 혹은 딥러닝 모델의 출력값과 사용자가 원하는 출력값의 오차를 의미 · 손실함수의 함수값이 최소화 되도록 하는 …
Source: didu-story.tistory.com
Date Published: 2/13/2021
View: 711
Top 26 Loss Function 종류 The 30 Latest Answer – 1111.com.vn
Summary of article content: Articles about [딥러닝] 목적/손실 함수(Loss Function) 이해 및 종류 손실함수의 종류 · MSE(Mean Squared Error) · RMSE( …
Source: 1111.com.vn
Date Published: 6/23/2022
View: 7933
[ML101] #3. Loss Function – 브런치
손실 함수는 데이터를 토대로 산출한 모델의 예측 값과 실제 값과의 차이를 표현하는 지표입니다. 조금 더 쉽게 설명하면, 손실 함수는 모델 성능의 ‘나쁨 …
Source: brunch.co.kr
Date Published: 5/7/2022
View: 1745
손실함수(Loss Function)의 종류 – 땅콩새싹
손실함수는 함수에 따라 차이는 있지만, 예측값이 정답에 가까울수록 0에 수렴하고, 정답과 거리가 멀 수록 큰 값을 출력합니다. MSE(Mean Squared Error).
Source: erdnussretono.tistory.com
Date Published: 8/27/2022
View: 5804
딥러닝 Keras에서 loss함수의 종류와 선택 방법 및 코드
손실 함수는 값을 예측하려할 때 데이터에대한 예측값과 실제의 값을 비교하는 함수로 모델을 훈련시킬 때 오류를 최소화 시키기 위해 사용되며, 주로 …
Source: durian9s-coding-tree.tistory.com
Date Published: 10/29/2022
View: 5890
손실함수(Loss function) – Seminar – 고려대학교 DMQA 연구실
본 세미나에서는 손실함수의 기본 개념과 데이터 종류에 따른 대표적인 손실함수 그리고 최적의 손실함수를 찾는 Adaptive Loss function과 AM-LFS를 …
Source: dmqm.korea.ac.kr
Date Published: 12/28/2021
View: 5677
[Deep Learning] 손실함수(Loss Function) 개념 – Hey Tech
손실 함수(Loss Function)는 지도학습(Supervised Learning) 시 알고리즘이 예측한 값과 실제 정답의 차이를 비교하기 위한 함수입니다.
Source: heytech.tistory.com
Date Published: 8/5/2021
View: 9364
손실 함수 (Loss Function)의 종류 – Steemit
손실 함수 (Loss Function)의 종류 · 산술 손실 함수 – 산술값을 예측할 때 데이터 대한 예측값과 실제 관측 값을 비교하는 함수 (regression) · 확률 손실 함수 – 특정 항목 …
Source: steemit.com
Date Published: 11/29/2021
View: 2742
주제와 관련된 이미지 loss function 종류
주제와 관련된 더 많은 사진을 참조하십시오 ㄹㅇ 쉬운 딥러닝 3강 : 손실함수 (loss function) 로 컴퓨터에게 오차를 알려줘야함. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.
![ㄹㅇ 쉬운 딥러닝 3강 : 손실함수 (loss function) 로 컴퓨터에게 오차를 알려줘야함](https://i.ytimg.com/vi/_JOjr8tVLSU/maxresdefault.jpg)
주제에 대한 기사 평가 loss function 종류
- Author: 코딩애플
- Views: 조회수 17,524회
- Likes: 좋아요 209개
- Date Published: 2020. 11. 6.
- Video Url link: https://www.youtube.com/watch?v=_JOjr8tVLSU
[머신러닝] 손실함수의 종류
손실함수(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를 기반한 코드
손실 함수(Loss Function) 이해 및 종류
목적/손실 함수(Loss Function) 이란?
딥러닝 혹은 머신러닝은 컴퓨터가 가중치를 찾아가는 과정이다.
일단 아래 예를 보도록 해보자.
4 = 2a + b 6 = 3a + b
이와 같은 문제가 있다고 가정을 해보자, 사람들에게 a와 b에 들어가야 되는 답은 무엇인가? 라고 물어본다면
값을 대입해서 문제를 풀어본다던지 직관적으로 풀어본다던지 아니면 여러가지 공식을 써서 풀어본다던지
할 것이다. 2번과 3번과 같은 경우 컴퓨터에게 시키기에는 매우 힘든 작업이다. 반대로 값이 엄청 많을 경우 1번은 인간에게 힘들 수 있다. 물론 위의 문제는 너무 쉽기 때문에 값을 대충 대입해서도 충분히 맞출 것이다.
컴퓨터는 기본적으로 첫번째 방법인 값을 대입해서 문제를 풀어본다. 그래서 대입한 결과와 실제 정답간의 간격 즉, 차이를 최대한 줄이는 방향으로 값을 대입하게 된다. 이 값의 차이를 loss라고 하며, 이 loss를 줄이는 방향으로 학습이 진행이 된다.
손실함수의 종류
MSE(Mean Squared Error)
예측한 값과 실제 값 사이의 평균 제곱 오차를 정의한다. 공식이 매우 간단하며, 차가 커질수록 제곱 연산으로 인해서 값이 더욱 뚜렷해진다. 그리고 제곱으로 인해서 오차가 양수이든 음수이든 누적 값을 증가시킨다.
RMSE(Root Mean Squared Error)
MSE에 루트(√)를 씌운 것으로 MSE와 기본적으로 동일하다. MSE 값은 오류의 제곱을 구하기 때문에 실제 오류 평균보다 더 커지는 특성이 있어 MSE에 루트를 씌운 RMSE 은 값의 왜곡을 줄여준다.
Binary Crossentropy
MSE와 RMSE와 다르게 Crossentropy는 개념을 이해하기에 좀 시간이 걸릴 수 있고, 여기에 Crossentropy를 설명하는 것을 적어봤자. 갑자기 흥미가 뚝떨어질 수 있기 때문에 언제쓰며, 어떻게 사용하는지만 적도록 한다.
실제 레이블과 예측 레이블 간의 교차 엔트로피 손실을 계산한다. 2개의 레이블 클래스(0, 1로 가정)가 있을 때 Binary Crossentropy를 사용하면 좋다.
BinaryCrossentropy class
tf.keras.losses.BinaryCrossentropy( from_logits=False, label_smoothing=0, reduction=”auto”, name=”binary_crossentropy” )
Categorical Crossentropy
레이블 클래스가 2개 이상일 경우 사용된다. 보통 softmax 다음에 연계되어 나온다고 하여 softmax 활성화 함수 다음에 나온다고 하여 softmax loss 라고도 불린다.
CategoricalCrossentropy class
tf.keras.losses.CategoricalCrossentropy( from_logits=False, label_smoothing=0, reduction=”auto”, name=”categorical_crossentropy”, )
그외 손실함수들
https://www.tensorflow.org/api_docs/python/tf/keras/losses
에 들어가면, keras에서 사용하는 loss function 들을 확인할 수 있다.
#목적함수 #손실함수 #lossfunction
[딥러닝] 손실함수 (loss function) 종류 및 간단 정리 (feat. keras & pytorch)
반응형
시작하며
딥러닝모델 구축 도중 손실함수 때문에 오류가 났다. 아마 손실함수와 활성화 함수의 조합이 맞지 않았던 것 같다. 일단 그래서 이대로는 안되겠다 싶어서 자세한 수식까지는 아니더라도 언제, 어떻게, 무슨 종류의 손실함수가 있는지 살펴보기로 한다!!! 아자아자 화이팅 ⋌༼ •̀ ⌂ •́ ༽⋋
손실 함수(loss function) 란?
머신러닝 혹은 딥러닝 모델의 출력값과 사용자가 원하는 출력값의 오차를 의미 손실함수는 정답(y)와 예측(^y)를 입력으로 받아 실숫값 점수를 만드는데, 이 점수가 높을수록 모델이 안좋은 것
손실함수의 함수값이 최소화 되도록 하는 가중치(weight)와 편향(bias)를 찾는 것이 목표
파이썬에서 지원하는 다양한 라이브러리에서는 많은 손실함수를 지원한다. 해당 포스팅에서는 keras에서 존재하는 손실함수와, pytorch를 활용해서 손실함수를 살펴볼 것인데, 아래 공식문서에서 다양한 손실함수를 살펴볼 수 있다.
www.tensorflow.org/api_docs/python/tf/keras/losses
1. binary_crossentropy (이항 교차 엔트로피)
y값이 (ex. 0,1) 인 이진 분류기를 훈련할 때 자주 사용되는 손실 함수 (multi-label classification)
활성화 함수 : sigmoid 사용 (출력값이 0과 1사이의 값)
수식 아래 함수에 예측값(Yi) 과 실제값(ti) 에 1을 대입하면, 수식은 0에 수렴하게 됨 아래 함수에 예측값(Yi =0)과 실제값(ti = 1)을 대입한다면, 수식은 양의 무한대가 됨 따라서 이진 분류에 적합하다고 합니다 🙂
▷ keras에서 지원하는 이항 교차 엔트로피
tf.keras.losses.BinaryCrossentropy( from_logits=False, label_smoothing=0, reduction=”auto”, name=”binary_crossentropy” )
▷ pytorch에서 지원하는 범주형 교차 엔트로피
신경망의 출력을 가장한 랜덤 벡터에 시그모이드 활성화 함수를 적용해 이진 벡터인 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)
2. categorical_crossentropy (범주형 교차 엔트로피)
출력을 클래스 소속 확률에 대한 예측으로 이해할 수 있는 문제에서 사용 (즉, 레이블 (y) 클래스가 2개 이상일 경우 사용 즉, 멀티클래스 분류에 사용됨)
활성화 함수 : softmax (모든 벡터 요소의 값은 0과 1사이의 값이 나오고, 모든 합이 1이 됨)
라벨이 (0,0,1,0,0) , (0,1,0,0,0) 과 같이 one-hot encoding 된 형태로 제공될 때 사용 가능
수식 아래 수식에서 C 는 클래스의 개수 실제값과 예측값이 모두 동일하게 될 경우 손실함수의 값은 0이 나옴 실제값과 예측값이 다를 경우 수식에 대입하면 양의 무한대로 발산
▷ keras에서 지원하는 범주형 교차 엔트로피
tf.keras.losses.CategoricalCrossentropy( from_logits=False, label_smoothing=0, reduction=”auto”, name=”categorical_crossentropy”, )
▷ pytorch에서 지원하는 범주형 교차 엔트로피
반응형
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() 클래스는 각 입력이 클래스 하나에 속하고 각 클래스에는 고유한 인덱스가 있다고 가정하기 때문이다.
3. sparse_categorical_crossentropy
tf.keras.losses.sparse_categorical_crossentropy(y_true, y_pred, from_logits=False, axis=-1)
범주형 교차 엔트로피와 동일하게 멀티 클래스 분류에 사용
one-hot encoding 된 상태일 필요 없이 정수 인코딩 된 상태에서 수행 가능
라벨이 (1,2,3,4) 이런식으로 정수형태일때 사용!
4. 평균 제곱 오차 손실 (means squared error, MSE)
신경망의 출력(^y)과 타겟(y)이 연속값인 회귀 문제에서 널리 사용하는 손실함수 회귀문제에 사용될 수 있는 다른 손실 함수 평균 절댓값 오차 (Mean absolute error, MAE) 평균 제곱근 오차 (Root mean squared error, RMSE)
예측과 타겟값의 차이를 제곱하여 평균한 값 (모두 실숫값으로 계산)
MSE가 크다는 것은 평균 사이에 차이가 크다는 뜻 / MSE가 작다는 것은 데이터와 평균사이의 차이가 작다는 뜻 즉, MSE는 데이터가 평균으로부터 얼마나 떨어져있나를 보여주는 손실함수
연속형 데이터를 사용할 때 주로 사용 (주식 가격 예측 등)
▷ pytorch에서 지원하는 MSE
import torch import torch.nn as nn mse_loss = nn.MSELoss() outputs = torch.randn(3, 5, requires_grad = True) targets = torch.randn(3, 5) loss = mse_loss(outputs, targets) print(loss)
▷ keras 에서 지원하는 MSE
keras.losses.mean_squared_error(y_true, y_pred)
https://www.tensorflow.org/api_docs/python/tf/keras/metrics/mean_squared_error?hl=ko
참고문헌 (도와주셔서 감사합니다. 글 잘읽었어요!)
wordbe.tistory.com/entry/ML-Cross-entropyCategorical-Binary%EC%9D%98-%EC%9D%B4%ED%95%B4
bskyvision.com/822
needjarvis.tistory.com/567
마치며
방금 공부하다가 알게 된 건데, 아까 딥러닝 모델을 돌리다가 오류가 난 이유는 활성화 함수 때문이 아니라 아마 오류가 난 이유가, 정수 형태의 라벨이었는데 binary cross entrophy를 사용했기 때문이었던 것 같다. 티스토리에 업로드하는 게 시간이 좀 더 걸리긴 하지만 머릿속에 확실하게 정리가 되는 것 같다!! ღ(· ᴥ ·)ッ
그동안 많은 프로젝트도 진행하고 상도 타고 했었는데, 이렇게 세세하게 고민하고 공부해보니 정말 부족함을 많이 느낀다. 얼른 TF 자격증 따자 !! 화이탱탱탱 ค^•ﻌ•^ค
반응형
Top 26 Loss Function 종류 The 30 Latest Answer
ㄹㅇ 쉬운 딥러닝 3강 : 손실함수 (loss function) 로 컴퓨터에게 오차를 알려줘야함
ㄹㅇ 쉬운 딥러닝 3강 : 손실함수 (loss function) 로 컴퓨터에게 오차를 알려줘야함
[머신러닝] 손실함수의 종류Article author: velog.io
Reviews from users: 15795 Ratings
Ratings Top rated: 4.4
Lowest rated: 1
Summary of article content: Articles about [머신러닝] 손실함수의 종류 Updating …
Most searched keywords: Whether you are looking for [머신러닝] 손실함수의 종류 Updating 손실 함수(loss function)란?머신러닝 혹은 딥러닝 모델의 출력값과 사용자가 원하는 출력값의 오차를 의미손실함수는 정답(y)와 예측(^y)를 입력으로 받아 실숫값 점수를 만드는데, 이 점수가 높을수록 모델이 안좋은 것손실함수의 함수값이 최소화 되도록 하는 가중
Table of Contents:
머신러닝
손실함수의 종류
[머신러닝] 손실함수의 종류Read More
[딥러닝] 목적/손실 함수(Loss Function) 이해 및 종류Article author: needjarvis.tistory.com
Reviews from users: 14760 Ratings
Ratings Top rated: 4.4
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
티스토리툴바
[딥러닝] 목적/손실 함수(Loss Function) 이해 및 종류Read More
[딥러닝] 손실함수 (loss function) 종류 및 간단 정리 (feat. keras & pytorch)Article author: didu-story.tistory.com
Reviews from users: 24228 Ratings
Ratings Top rated: 4.1
Lowest rated: 1
Summary of article content: Articles about [딥러닝] 손실함수 (loss function) 종류 및 간단 정리 (feat. keras & pytorch) 손실 함수(loss function) 란? · 머신러닝 혹은 딥러닝 모델의 출력값과 사용자가 원하는 출력값의 오차를 의미 · 손실함수의 함수값이 최소화 되도록 하는 … …
Most searched keywords: Whether you are looking for [딥러닝] 손실함수 (loss function) 종류 및 간단 정리 (feat. keras & pytorch) 손실 함수(loss function) 란? · 머신러닝 혹은 딥러닝 모델의 출력값과 사용자가 원하는 출력값의 오차를 의미 · 손실함수의 함수값이 최소화 되도록 하는 … 시작하며 딥러닝모델 구축 도중 손실함수 때문에 오류가 났다. 아마 손실함수와 활성화 함수의 조합이 맞지 않았던 것 같다. 일단 그래서 이대로는 안되겠다 싶어서 자세한 수식까지는 아니더라도 언제, 어떻게,..난 뭘해도 될거야 꼭 🍀
지나간 일은 후회말자!! 🙂
취업 / IT / IOS / 전자기기 / 리뷰 / 대학생활 / 인턴
github.com/deslog
지나간 일은 후회말자!! 🙂 취업 / IT / IOS / 전자기기 / 리뷰 / 대학생활 / 인턴 github.com/deslog Table of Contents:
[딥러닝] 손실함수 (loss function) 종류 및 간단 정리 (feat keras & pytorch)손실 함수(loss function) 란
마치며
티스토리툴바
[딥러닝] 손실함수 (loss function) 종류 및 간단 정리 (feat. keras & pytorch)Read More
[ML101] #3. Loss FunctionArticle author: brunch.co.kr
Reviews from users: 38884 Ratings
Ratings Top rated: 3.9
Lowest rated: 1
Summary of article content: Articles about [ML101] #3. Loss Function 손실 함수는 데이터를 토대로 산출한 모델의 예측 값과 실제 값과의 차이를 표현하는 지표입니다. 조금 더 쉽게 설명하면, 손실 함수는 모델 성능의 ‘나쁨 … …
Most searched keywords: Whether you are looking for [ML101] #3. Loss Function 손실 함수는 데이터를 토대로 산출한 모델의 예측 값과 실제 값과의 차이를 표현하는 지표입니다. 조금 더 쉽게 설명하면, 손실 함수는 모델 성능의 ‘나쁨 … [ML101] 시리즈의 두 번째 주제는 손실 함수(Loss Function)입니다. 손실 함수는 다른 명칭으로 비용 함수(Cost Function)이라고 불립니다. 손실 함수는 고등학교 수학 교과과정에 신설되는 ‘인공지능(AI) 수학’ 과목에 포함되는 기계학습(머신러닝) 최적화의 기본 원리이며 기초적인 개념입니다. 이번 시리즈에는 이 “손실 함수”의 개념과
Table of Contents:
[ML101] #3. Loss FunctionRead More
손실함수(Loss Function)의 종류
Article author: erdnussretono.tistory.com
Reviews from users: 4725 Ratings
Ratings Top rated: 3.4
Lowest rated: 1
Summary of article content: Articles about 손실함수(Loss Function)의 종류 손실함수는 함수에 따라 차이는 있지만, 예측값이 정답에 가까울수록 0에 수렴하고, 정답과 거리가 멀 수록 큰 값을 출력합니다. MSE(Mean Squared Error). …
Most searched keywords: Whether you are looking for 손실함수(Loss Function)의 종류 손실함수는 함수에 따라 차이는 있지만, 예측값이 정답에 가까울수록 0에 수렴하고, 정답과 거리가 멀 수록 큰 값을 출력합니다. MSE(Mean Squared Error). 손실 함수(Loss Function) 손실 함수란, 컴퓨터가 출력한 예측값이 우리가 의도한 정답과 얼마나 틀렸는지를 채점하는 함수입니다. 손실함수는 함수에 따라 차이는 있지만, 예측값이 정답에 가까울수록 0에 수렴..
Table of Contents:
손실함수(Loss Function)의 종류
손실 함수(Loss Function)
티스토리툴바
손실함수(Loss Function)의 종류
Read More
딥러닝 Keras에서 loss함수의 종류와 선택 방법 및 코드 — 두리안의 코딩 나무
Article author: durian9s-coding-tree.tistory.com
Reviews from users: 42822 Ratings
Ratings Top rated: 4.3
Lowest rated: 1
Summary of article content: Articles about 딥러닝 Keras에서 loss함수의 종류와 선택 방법 및 코드 — 두리안의 코딩 나무 손실 함수는 값을 예측하려할 때 데이터에대한 예측값과 실제의 값을 비교하는 함수로 모델을 훈련시킬 때 오류를 최소화 시키기 위해 사용되며, 주로 … …
Most searched keywords: Whether you are looking for 딥러닝 Keras에서 loss함수의 종류와 선택 방법 및 코드 — 두리안의 코딩 나무 손실 함수는 값을 예측하려할 때 데이터에대한 예측값과 실제의 값을 비교하는 함수로 모델을 훈련시킬 때 오류를 최소화 시키기 위해 사용되며, 주로 … loss 함수란? 손실 함수는 값을 예측하려할 때 데이터에대한 예측값과 실제의 값을 비교하는 함수로 모델을 훈련시킬 때 오류를 최소화 시키기 위해 사용되며, 주로 회귀(regression)에서 사용한다. 모델의 성능을..
Table of Contents:
티스토리툴바
공지사항
블로그 메뉴
최근 글
티스토리
loss 함수란
티스토리툴바
딥러닝 Keras에서 loss함수의 종류와 선택 방법 및 코드 — 두리안의 코딩 나무
Read More
Seminar – 고려대학교 DMQA 연구실
Article author: dmqm.korea.ac.kr
Reviews from users: 15043 Ratings
Ratings Top rated: 3.5
Lowest rated: 1
Summary of article content: Articles about
Seminar – 고려대학교 DMQA 연구실
본 세미나에서는 손실함수의 기본 개념과 데이터 종류에 따른 대표적인 손실함수 그리고 최적의 손실함수를 찾는 Adaptive Loss function과 AM-LFS를 … …
Seminar – 고려대학교 DMQA 연구실 본 세미나에서는 손실함수의 기본 개념과 데이터 종류에 따른 대표적인 손실함수 그리고 최적의 손실함수를 찾는 Adaptive Loss function과 AM-LFS를 … … Most searched keywords: Whether you are looking for
Seminar – 고려대학교 DMQA 연구실
본 세미나에서는 손실함수의 기본 개념과 데이터 종류에 따른 대표적인 손실함수 그리고 최적의 손실함수를 찾는 Adaptive Loss function과 AM-LFS를 … 고려대학교 산업경영공학부 데이터마이닝 및 품질애널리틱스 연구실
Seminar – 고려대학교 DMQA 연구실 본 세미나에서는 손실함수의 기본 개념과 데이터 종류에 따른 대표적인 손실함수 그리고 최적의 손실함수를 찾는 Adaptive Loss function과 AM-LFS를 … 고려대학교 산업경영공학부 데이터마이닝 및 품질애널리틱스 연구실 Table of Contents:
Seminar – 고려대학교 DMQA 연구실
Read More
[Deep Learning] 손실함수(Loss Function) 개념Article author: heytech.tistory.com
Reviews from users: 19547 Ratings
Ratings Top rated: 3.6
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 알고리즘 학습의 수학적 의미
📚참고할 만한 포스팅
티스토리툴바
[Deep Learning] 손실함수(Loss Function) 개념Read More
[Loss 함수] loss 함수의 종류 및 비교, 사용Article author: chaloalto.tistory.com
Reviews from users: 13979 Ratings
Ratings Top rated: 4.0
Lowest rated: 1
Summary of article content: Articles about [Loss 함수] loss 함수의 종류 및 비교, 사용 [Loss 함수] loss 함수의 종류 및 비교, 사용 · 실제 레이블과 예측 레이블 간의 교차 엔트로피 손실을 계산한다. · 레이블 클래스가 2개 이상일 경우 사용된다. …
Most searched keywords: Whether you are looking for [Loss 함수] loss 함수의 종류 및 비교, 사용 [Loss 함수] loss 함수의 종류 및 비교, 사용 · 실제 레이블과 예측 레이블 간의 교차 엔트로피 손실을 계산한다. · 레이블 클래스가 2개 이상일 경우 사용된다. 출처 : https://needjarvis.tistory.com/567 Binary Crossentropy 실제 레이블과 예측 레이블 간의 교차 엔트로피 손실을 계산한다. 2개의 레이블 클래스(0, 1로 가정)가 있을 때 Binary Crossentropy를 사용하면..
Table of Contents:
관련글
댓글0
공지사항
최근글
인기글
최근댓글
태그
전체 방문자
티스토리툴바
[Loss 함수] loss 함수의 종류 및 비교, 사용Read More
손실 함수 (Loss Function)의 종류 — Steemit
Article author: steemit.com
Reviews from users: 34620 Ratings
Ratings Top rated: 4.0
Lowest rated: 1
Summary of article content: Articles about 손실 함수 (Loss Function)의 종류 — Steemit 손실 함수 (Loss Function)의 종류 · 산술 손실 함수 – 산술값을 예측할 때 데이터 대한 예측값과 실제 관측 값을 비교하는 함수 (regression) · 확률 손실 함수 – 특정 항목 … …
Most searched keywords: Whether you are looking for 손실 함수 (Loss Function)의 종류 — Steemit 손실 함수 (Loss Function)의 종류 · 산술 손실 함수 – 산술값을 예측할 때 데이터 대한 예측값과 실제 관측 값을 비교하는 함수 (regression) · 확률 손실 함수 – 특정 항목 … 모델의 성능을 올리기 위해 손실 함수를 임의로 변형할 수 있음 산술 손실 함수 – 산술값을 예측할 때 데이터 대한 예측값과 실제 관측 값을 비교하는 함수 (regression) 제곱 손실 함수… by heqet
Table of Contents:
손실 함수 (Loss Function)의 종류 — Steemit
Read More
See more articles in the same category here: https://1111.com.vn/ko/blog/.
[머신러닝] 손실함수의 종류손실함수(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를 기반한 코드
손실 함수(Loss Function) 이해 및 종류
목적/손실 함수(Loss Function) 이란? 딥러닝 혹은 머신러닝은 컴퓨터가 가중치를 찾아가는 과정이다. 일단 아래 예를 보도록 해보자. 4 = 2a + b 6 = 3a + b 이와 같은 문제가 있다고 가정을 해보자, 사람들에게 a와 b에 들어가야 되는 답은 무엇인가? 라고 물어본다면 값을 대입해서 문제를 풀어본다던지 직관적으로 풀어본다던지 아니면 여러가지 공식을 써서 풀어본다던지 할 것이다. 2번과 3번과 같은 경우 컴퓨터에게 시키기에는 매우 힘든 작업이다. 반대로 값이 엄청 많을 경우 1번은 인간에게 힘들 수 있다. 물론 위의 문제는 너무 쉽기 때문에 값을 대충 대입해서도 충분히 맞출 것이다. 컴퓨터는 기본적으로 첫번째 방법인 값을 대입해서 문제를 풀어본다. 그래서 대입한 결과와 실제 정답간의 간격 즉, 차이를 최대한 줄이는 방향으로 값을 대입하게 된다. 이 값의 차이를 loss라고 하며, 이 loss를 줄이는 방향으로 학습이 진행이 된다. 손실함수의 종류 MSE(Mean Squared Error) 예측한 값과 실제 값 사이의 평균 제곱 오차를 정의한다. 공식이 매우 간단하며, 차가 커질수록 제곱 연산으로 인해서 값이 더욱 뚜렷해진다. 그리고 제곱으로 인해서 오차가 양수이든 음수이든 누적 값을 증가시킨다. RMSE(Root Mean Squared Error) MSE에 루트(√)를 씌운 것으로 MSE와 기본적으로 동일하다. MSE 값은 오류의 제곱을 구하기 때문에 실제 오류 평균보다 더 커지는 특성이 있어 MSE에 루트를 씌운 RMSE 은 값의 왜곡을 줄여준다. Binary Crossentropy MSE와 RMSE와 다르게 Crossentropy는 개념을 이해하기에 좀 시간이 걸릴 수 있고, 여기에 Crossentropy를 설명하는 것을 적어봤자. 갑자기 흥미가 뚝떨어질 수 있기 때문에 언제쓰며, 어떻게 사용하는지만 적도록 한다. 실제 레이블과 예측 레이블 간의 교차 엔트로피 손실을 계산한다. 2개의 레이블 클래스(0, 1로 가정)가 있을 때 Binary Crossentropy를 사용하면 좋다. BinaryCrossentropy class tf.keras.losses.BinaryCrossentropy( from_logits=False, label_smoothing=0, reduction=”auto”, name=”binary_crossentropy” ) Categorical Crossentropy 레이블 클래스가 2개 이상일 경우 사용된다. 보통 softmax 다음에 연계되어 나온다고 하여 softmax 활성화 함수 다음에 나온다고 하여 softmax loss 라고도 불린다. CategoricalCrossentropy class tf.keras.losses.CategoricalCrossentropy( from_logits=False, label_smoothing=0, reduction=”auto”, name=”categorical_crossentropy”, ) 그외 손실함수들 https://www.tensorflow.org/api_docs/python/tf/keras/losses 에 들어가면, keras에서 사용하는 loss function 들을 확인할 수 있다. #목적함수 #손실함수 #lossfunction
[딥러닝] 손실함수 (loss function) 종류 및 간단 정리 (feat. keras & pytorch)반응형 시작하며 딥러닝모델 구축 도중 손실함수 때문에 오류가 났다. 아마 손실함수와 활성화 함수의 조합이 맞지 않았던 것 같다. 일단 그래서 이대로는 안되겠다 싶어서 자세한 수식까지는 아니더라도 언제, 어떻게, 무슨 종류의 손실함수가 있는지 살펴보기로 한다!!! 아자아자 화이팅 ⋌༼ •̀ ⌂ •́ ༽⋋ 손실 함수(loss function) 란? 머신러닝 혹은 딥러닝 모델의 출력값과 사용자가 원하는 출력값의 오차를 의미 손실함수는 정답(y)와 예측(^y)를 입력으로 받아 실숫값 점수를 만드는데, 이 점수가 높을수록 모델이 안좋은 것 손실함수의 함수값이 최소화 되도록 하는 가중치(weight)와 편향(bias)를 찾는 것이 목표 파이썬에서 지원하는 다양한 라이브러리에서는 많은 손실함수를 지원한다. 해당 포스팅에서는 keras에서 존재하는 손실함수와, pytorch를 활용해서 손실함수를 살펴볼 것인데, 아래 공식문서에서 다양한 손실함수를 살펴볼 수 있다. www.tensorflow.org/api_docs/python/tf/keras/losses 1. binary_crossentropy (이항 교차 엔트로피) y값이 (ex. 0,1) 인 이진 분류기를 훈련할 때 자주 사용되는 손실 함수 (multi-label classification) 활성화 함수 : sigmoid 사용 (출력값이 0과 1사이의 값) 수식 아래 함수에 예측값(Yi) 과 실제값(ti) 에 1을 대입하면, 수식은 0에 수렴하게 됨 아래 함수에 예측값(Yi =0)과 실제값(ti = 1)을 대입한다면, 수식은 양의 무한대가 됨 따라서 이진 분류에 적합하다고 합니다 🙂 ▷ keras에서 지원하는 이항 교차 엔트로피 tf.keras.losses.BinaryCrossentropy( from_logits=False, label_smoothing=0, reduction=”auto”, name=”binary_crossentropy” ) ▷ pytorch에서 지원하는 범주형 교차 엔트로피 신경망의 출력을 가장한 랜덤 벡터에 시그모이드 활성화 함수를 적용해 이진 벡터인 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) 2. categorical_crossentropy (범주형 교차 엔트로피) 출력을 클래스 소속 확률에 대한 예측으로 이해할 수 있는 문제에서 사용 (즉, 레이블 (y) 클래스가 2개 이상일 경우 사용 즉, 멀티클래스 분류에 사용됨) 활성화 함수 : softmax (모든 벡터 요소의 값은 0과 1사이의 값이 나오고, 모든 합이 1이 됨) 라벨이 (0,0,1,0,0) , (0,1,0,0,0) 과 같이 one-hot encoding 된 형태로 제공될 때 사용 가능 수식 아래 수식에서 C 는 클래스의 개수 실제값과 예측값이 모두 동일하게 될 경우 손실함수의 값은 0이 나옴 실제값과 예측값이 다를 경우 수식에 대입하면 양의 무한대로 발산 ▷ keras에서 지원하는 범주형 교차 엔트로피 tf.keras.losses.CategoricalCrossentropy( from_logits=False, label_smoothing=0, reduction=”auto”, name=”categorical_crossentropy”, ) ▷ pytorch에서 지원하는 범주형 교차 엔트로피 반응형 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() 클래스는 각 입력이 클래스 하나에 속하고 각 클래스에는 고유한 인덱스가 있다고 가정하기 때문이다. 3. sparse_categorical_crossentropy tf.keras.losses.sparse_categorical_crossentropy(y_true, y_pred, from_logits=False, axis=-1) 범주형 교차 엔트로피와 동일하게 멀티 클래스 분류에 사용 one-hot encoding 된 상태일 필요 없이 정수 인코딩 된 상태에서 수행 가능 라벨이 (1,2,3,4) 이런식으로 정수형태일때 사용! 4. 평균 제곱 오차 손실 (means squared error, MSE) 신경망의 출력(^y)과 타겟(y)이 연속값인 회귀 문제에서 널리 사용하는 손실함수 회귀문제에 사용될 수 있는 다른 손실 함수 평균 절댓값 오차 (Mean absolute error, MAE) 평균 제곱근 오차 (Root mean squared error, RMSE) 예측과 타겟값의 차이를 제곱하여 평균한 값 (모두 실숫값으로 계산) MSE가 크다는 것은 평균 사이에 차이가 크다는 뜻 / MSE가 작다는 것은 데이터와 평균사이의 차이가 작다는 뜻 즉, MSE는 데이터가 평균으로부터 얼마나 떨어져있나를 보여주는 손실함수 연속형 데이터를 사용할 때 주로 사용 (주식 가격 예측 등) ▷ pytorch에서 지원하는 MSE import torch import torch.nn as nn mse_loss = nn.MSELoss() outputs = torch.randn(3, 5, requires_grad = True) targets = torch.randn(3, 5) loss = mse_loss(outputs, targets) print(loss) ▷ keras 에서 지원하는 MSE keras.losses.mean_squared_error(y_true, y_pred) https://www.tensorflow.org/api_docs/python/tf/keras/metrics/mean_squared_error?hl=ko 참고문헌 (도와주셔서 감사합니다. 글 잘읽었어요!) wordbe.tistory.com/entry/ML-Cross-entropyCategorical-Binary%EC%9D%98-%EC%9D%B4%ED%95%B4 bskyvision.com/822 needjarvis.tistory.com/567 마치며 방금 공부하다가 알게 된 건데, 아까 딥러닝 모델을 돌리다가 오류가 난 이유는 활성화 함수 때문이 아니라 아마 오류가 난 이유가, 정수 형태의 라벨이었는데 binary cross entrophy를 사용했기 때문이었던 것 같다. 티스토리에 업로드하는 게 시간이 좀 더 걸리긴 하지만 머릿속에 확실하게 정리가 되는 것 같다!! ღ(· ᴥ ·)ッ 그동안 많은 프로젝트도 진행하고 상도 타고 했었는데, 이렇게 세세하게 고민하고 공부해보니 정말 부족함을 많이 느낀다. 얼른 TF 자격증 따자 !! 화이탱탱탱 ค^•ﻌ•^ค 반응형
So you have finished reading the loss function 종류 topic article, if you find this article useful, please share it. Thank you very much. See more: Loss function, 손실함수, 크로스엔트로피 손실함수, CNN loss function, AI 손실함수, Keras loss function, Cross entropy loss, Pytorch loss function
[ML101] #3. Loss Function
[ML101] 시리즈의 두 번째 주제는 손실 함수(Loss Function)입니다. 손실 함수는 다른 명칭으로 비용 함수(Cost Function)이라고 불립니다.손실 함수는 고등학교 수학 교과과정에 신설되는 ‘인공지능(AI) 수학’ 과목에 포함되는 기계학습(머신러닝) 최적화의 기본 원리이며 기초적인 개념입니다. 이번 시리즈에는 이 “손실 함수”의 개념과 종류에 대해 알아보도록 하겠습니다.
위의 그림은 일반적인 통계학적 모델의 형태로 입력 값(Input x)이 들어오면 모델을 통해 예측 값(Output y)이 산출되는 방식입니다. 그러면 이 예측 값이 실제 값과 얼마나 유사한지 판단하는 기준이 필요한데 그게 바로 손실 함수(Loss function)입니다. 예측 값과 실제 값의 차이를 loss라고 하며, 이 loss를 줄이는 방향으로 학습이 진행됩니다.
예를 들어, 위의 그림 중 파란색 점이 우리가 가지고 있는 데이터라고 가정해 봅시다. 데이터가 이렇게 분포되어있을 때, 파란색 점 전체를 잘 대변하는 직선은 어떤 모습일까요?
파란색 점 전체를 잘 대변하는 직선의 모습은 위의 그림에서 빨간 선(우리의 가설 직선과 실제 값의 차이)의 총합이 최소화됐을 경우일 겁니다. 손실 함수의 목적은 이 빨간 선들의 총합을 최소화하여 최적의 결괏값을 도출하는 것입니다.
그렇다면 이 손실 함수는 무엇을 의미하는 걸까요?
손실 함수는 데이터를 토대로 산출한 모델의 예측 값과 실제 값과의 차이를 표현하는 지표입니다. 조금 더 쉽게 설명하면, 손실 함수는 모델 성능의 ‘나쁨’을 나타내는 지표로, “현재의 모델이 데이터를 얼마나 잘 처리하지 못하느냐”를 나타내는 지표라고 할 수 있습니다. “얼마나 나쁘냐”를 어떤 방식으로 표현하느냐에 따라 여러 가지 손실 함수가 존재합니다.
통계학적 모델은 일반적으로 회귀(regression)와 분류(classification) 두 가지 종류로 나눠지는데, 손실 함수도 그에 따라 두 가지 종류로 나눠집니다. 회귀 타입에 쓰이는 대표적 손실 함수는 MAE, MSE, RMSE 가 있으며, 분류에 쓰이는 손실 함수는 Binary cross-entropy, Categorical cross-entropy 등이 있습니다. 다음은 언급된 손실 함수 종류와 각각의 특징에 대해서 설명하도록 하겠습니다.
회귀 타입에 사용되는 손실 함수는 대표적으로 평균 오차 계산법이 있으며, 평균 오차를 계산하는 방식(공식)에 따라 MAE, MSE, RMSE로 구분됩니다.
1. 평균 절대 오차 (Mean Absolute Error, MAE)
평균 절대 오차는 예측 값과 정답 값의 차이에 절댓값을 취하여, 그 값들을 전부 더하고, 개수로 나누어 평균을 낸 값입니다. 예측 결과와 정답 결과가 떨어진 정도의 절댓값을 평균 낸 것이기에, 전체 데이터의 학습된 정도를 쉽게 파악할 수 있습니다. 하지만, 절댓값을 취하기 때문에 해당 예측이 어떤 식으로 오차가 발생했는지, 음수인지 양수인지 판단할 수 없다는 단점이 있습니다. 또한 아래 그림처럼 최적 값에 가까워지더라도 이동거리가 일정하기 때문에 최적 값에 수렴하기 어렵습니다.
2. 평균 제곱 오차 (Mean Squared Error, MSE)
평균 제곱 오차는 가장 많이 쓰이는 손실 함수 중 하나이며, 예측 값과 실제 값 사이의 평균을 제곱하여 평균을 낸 값입니다. 차이가 커질수록 제곱 연산으로 인해 값이 뚜렷해지며 제곱으로 인해 오차가 양수이든 음수이든 누적 값을 증가시킵니다. MSE는 실제 정답에 대한 정답률의 오차뿐만 아니라 다른 오답들에 대한 정답률 오차 또한 포함하여 계산한다는 것이 특징입니다. MSE는 MAE와 달리 최적 값에 가까워질 경우 이동거리가 다르게 변화하기 때문에 최적 값에 수렴하기 용이합니다. MSE의 단점으로는 값을 제곱하기 때문에, “1 미만의 값은 더 작아지고, 그 이상의 값은 더 커진다”, 즉 값의 왜곡이 있을 수 있습니다.
3. 평균 제곱근 오차(Root Mean Square Error, RMSE)
평균 제곱근 오차는 MSE에 루트를 씌운 지표로 장단점은 MSE와 유사한 형태로 이루어집니다. 하지만 제곱된 값에 루트를 씌우기 때문에 값을 제곱해서 생기는 왜곡이 줄어들며, 오차를 보다 직관적으로 보여줍니다. 그 이유는 루트를 씌워주기 때문에 오류 값을 실제 값과 유산한 단위로 변환하여 해석을 할 수 있기 때문입니다.
다음은 분류 타입에 사용되는 손실 함수에 대해서 설명하겠습니다. 분류 타입에 대표적으로 사용되는 손실 함수는 cross-entropy 방식이 있습니다.
그렇다면, 여기서 cross-entropy란 무엇을 의미하는 걸까요?
Cross-entropy는 실제 분포 q에 대하여 알지 못하는 상태에서, 모델링을 통하여 구한 분포인 p를 통하여 q를 예측하는 것입니다. 이때, q와 p가 모두 식에 들어가기 때문에, cross-entropy라는 이름이 생겼습니다.
Cross-entropy에서 실제 값과 예측 값이 맞는 경우에는 0으로 수렴하고, 값이 틀릴 경우에는 값이 커지기 때문에, 실제 값과 예측 값의 차이를 줄이기 위한 방식이라고 이해하시면 됩니다. 하지만 이 Cross-entropy는 label의 값이 one-hot encoding일 경우에만 사용 가능합니다.
*One hot encoding: multinomial classification에서 사용하는 인코딩 방법으로 출력 값의 형태가 정답 label은 1이고 나머지 label 값은 모두 0 ex) [1,0,0], [0,1,0], [0,0,1]
그럼 구체적으로 Binary cross-entropy와 Categorical cross-entropy에 대해서 알아보도록 하겠습니다.
1. Binary cross-entropy
Binary cross-entropy는 이진 분류에 사용되는 방식입니다. 예를 들어, True 또는 False, 양성 또는 음성 등 2개의 class를 분류할 때 사용하는 방식으로 예측값이 0과 1 사이의 확률 값으로 나옵니다. 1에 가까우면 하나의 클래스(True or 양성) 일 확률이 큰 것이고, 0에 가까우면 다른 하나의 클래스(False or 음성) 일 확률이 큰 것입니다.
2. Categorical cross-entropy
Categorical cross-entropy는 분류해야 할 클래스가 3개 이상인 경우, 즉 멀티클래스 분류에 사용됩니다. 라벨이 [0,0,1,0,0], [1,0,0,0,0], [0,0,0,1,0]과 같이 one-hot 형태로 제공될 때 사용됩니다. 일반적으로 예측 값은 [0.02 0.94 0.02 0.01 0.01]와 같은 식으로 나오기 때문에 여러 class 중 가장 적절한 하나의 class를 분류하는 문제의 손실 함수로 사용되기에 적합합니다.
지금까지 손실 함수의 개념과 종류에 대해 알아봤습니다. 다음 글에서는 경사 하강법(Gradient descent)에 대해 구체적으로 알아보겠습니다.
손실함수(Loss Function)의 종류
반응형
손실 함수(Loss Function)
손실 함수란, 컴퓨터가 출력한 예측값이 우리가 의도한 정답과 얼마나 틀렸는지를 채점하는 함수입니다. 손실함수는 함수에 따라 차이는 있지만, 예측값이 정답에 가까울수록 0에 수렴하고, 정답과 거리가 멀 수록 큰 값을 출력합니다.
MSE(Mean Squared Error)
예측한 값과 실제 값 사이의 평균 제곱 오차를 정의합니다. 차가 커질수록 제곱 연산으로 인해서 값이 더욱 뚜렷해집니다. 그리고 제곱으로 인해서 오차가 양수이든 음수이든 누적 값을 증가시킵니다.
RMSE(Root Mean Squared Error)
MSE에 루트를 씌운 것으로 MSE와 기본적으로 동일합니다. MSE 값은 오류에 제곱을 구하기 때문에 실제 오류 평균보다 더 커지는 특성이 있어 MSE에 루트를 씌운 RMSE는 값의 왜곡을 줄여줍니다.
Binary Crossentropy
실제 레이블과 예측 레이블 간의 교차 엔트로피 손실을 계산합니다. 2개의 레이블 클래스(0, 1로 가정)가 있을 때 Binary Crossentropy를 사용하면 좋습니다. 활성화 함수는 sigmoid를 사용합니다.
Categorical Crossentropy
레이블 클래스가 2개 이상일 경우 사용됩니다. 보통 Softmax 다음에 연계되어 나온다고 하여 softmax loss 라고도 불립니다. 모든 벡터 요소의 값은 0과 1사이의 값이 나오고 모든 합이 1이 됩니다. 라벨이 one-hot encoding된 형태로 제공될 때 사용 가능합니다.
Sparse categorical crossentrophy
범주형 교차 엔트로피와 동일하게 멀티 클래스 분류에 사용됩니다. one-hot encoding된 상태일 필요 없이 정수 인코딩 된 상태에서 수행 가능합니다.
그 외 여러가지 손실 함수 참고
https://www.tensorflow.org/api_docs/python/tf/keras/losses
반응형
딥러닝 Keras에서 loss함수의 종류와 선택 방법 및 코드
728×90
loss 함수란?
손실 함수는 값을 예측하려할 때 데이터에대한 예측값과 실제의 값을 비교하는 함수로 모델을 훈련시킬 때 오류를 최소화 시키기 위해 사용되며, 주로 회귀(regression)에서 사용한다.
모델의 성능을 올리기 위해 loss함수를 임의적으로 변형할 수 있다.
예시
model.compile(loss=’mean_squared_error’, optimizer=’sgd’)
손실함수의 종류
Mean_Squared_error
예측한 값과 실제 값 사이의 평균 제곱 오차를 정의한다. 공식이 매우 간단하며, 차가 커질수록 제곱 연산으로 인해서 값이 더욱 뚜렷해진다. 그리고 제곱으로 인해서 오차가 양수이든 음수이든 누적 값을 증가시킨다.
RMSE(Root Mean Squared Error)
MSE에 루트(√)를 씌운 것으로 MSE와 기본적으로 동일하다. MSE 값은 오류의 제곱을 구하기 때문에 실제 오류 평균보다 더 커지는 특성이 있어 MSE에 루트를 씌운 RMSE 은 값의 왜곡을 줄여준다.
Binary Crossentropy
실제 레이블과 예측 레이블 간의 교차 엔트로피 손실을 계산한다. 레이블 클래스(0, 1로 가정)가 2개만 존재할 때
Binary Crossentropy를 사용하면 좋다.
Categorical Crossentropy
다중 분류 손실함수로 출력값이 one-hot encoding 된 결과로 나오고 실측 결과와의 비교시에도 실측 결과는
one-hot encoding 형태로 구성된다.
예를 들면 출력 실측값이 아래와 같은 형태(one-hot encoding)로 만들어 줘야 하는 과정을 거쳐야 한다.
[[0 0 1] [0 1 0] [1 0 0]] (배치 사이즈 3개인 경우)네트웍 레이어 구성시 마지막에 Dense(3, activation=’softmax’) 로 3개의 클래스 각각 별로 positive 확률값이 나오게 된다.
[0.2, 0.3, 0.5]위 네트웍 출력값과 실측값의 오차값을 계산한다.
Sparse_Categorical_Crossentropy
‘categorical_entropy’처럼 다중 분류 손실함수이지만, 샘플 값은 정수형 자료이다. 예를 들어, 샘플 값이 아래와 같은 형태일 수 있다. (배치 사이즈 3개)
[0, 1, 2]네트웍 구성은 동일하게 Dense(3, activation=’softmax’)로 하고 출력값도 3개가 나오게 된다.
즉, 샘플 값을 입력하는 부분에서 별도 원핫 인코딩을 하지 않고 정수값 그대로 줄 수 있다. 이런 자료를 사용할 때, 컴파일 단계에서 손실 함수만 ‘sparse_categorical_crossentropy’로 바꿔주면 된다.
그 외
mean_absolute_error / mean_absolute_percentage_error
mean_squared_logarithmic_error / cosine_proximity
squared_hinge / hinge / categorical_hinge
logcosh / kullback_leibler_divergence / poisson
– 참고자료
keras.io/ko/losses/
dsbook.tistory.com/64
needjarvis.tistory.com/567
728×90
고려대학교 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.
[Deep Learning] 손실함수(Loss Function) 개념
728×90
반응형
💡 목표
손실 함수의 개념과 알고리즘 학습의 수학적 의미에 대해 알아봅니다.
1. 손실 함수의 개념
손실 함수(Loss Function)는 지도학습(Supervised Learning) 시 알고리즘이 예측한 값과 실제 정답의 차이를 비교하기 위한 함수입니다. 즉, ‘학습 중에 알고리즘이 얼마나 잘못 예측하는 정도’를 확인하기 위한 함수로써 최적화(Optimization)를 위해 최소화하는 것이 목적인 함수입니다. 그래서 손실 함수를 목적 함수(Objective Function)라고도 부릅니다. 이외에도 손실 함수는 분야에 따라 비용 함수(Cost Function), 에너지 함수(Energy Function) 등으로 다양하게 부르기도 합니다. 손실 함수를 통해 모델 학습 중에 손실(loss)이 커질수록 학습이 잘 안 되고 있다고 해석할 수 있고, 반대로 손실이 작아질수록 학습이 잘 이루어지고 있다고 해석합니다. 이처럼, 손실 함수는 알고리즘 학습의 길잡이 역할을 하는 중요한 역할을 담당합니다.
손실 함수는 성능 척도(Performance Measure)와는 다른 개념입니다. 성능 척도는 학습된 알고리즘의 성능을 정량적으로 평가하기 위한 지표로써 정확도, F1 점수, 정밀도 등이 있습니다. 즉, 성능 지표는 알고리즘의 학습이 끝났을 때 모델의 성능을 평가하기 위한 지표이기 때문에 알고리즘 학습 중에는 전혀 사용되지 않습니다. 반면, 손실 함수는 알고리즘 학습 중에 학습이 얼마나 잘 되고 있는지 평가하기 위한 지표입니다.
2. 알고리즘 학습의 수학적 의미
손실 함수를 중심으로 ‘알고리즘을 학습한다’의 의미를 수학적으로 알아봅니다. 먼저, 아래 수식을 살펴보겠습니다.
$$ \tilde{\theta} = \arg\min_{\theta}L(x, y; \theta) $$
수식 내 각각의 의미는 다음과 같습니다.
\(L\): 손실 함수
\(\arg\min\): arguments of minimum을 축약한 수학적 표현으로, 목적 함수를 최소화하는 입력값을 찾는 역할(목적 함수: \(L\))
\(x\): 학습 데이터의 입력값으로, \(x\)로 얻어낸 예측값(\(\hat{y}\))은 정답(\(y\))과 비교
\(y\): 학습 데이터의 정답
\(\theta\): 알고리즘 학습 시 사용되는 모든 파라미터의 벡터
\(\tilde{\theta}\): 추정된 최적의 파라미터
그림 1. 알고리즘 학습의 수학적 의미
알고리즘을 학습하는 것은 알고리즘이 예측한 값(\(\hat{y}\))이 정답(\(y\))과 최대한 근접하게 만드는 과정입니다. 즉, 위의 그림 1과 같이 학습 데이터(\(x\), \(y\))는 고정된 값이므로, 알고리즘 학습 시 사용되는 최적의 파라미터 \(\tilde{\theta}\)를 찾아 \(loss\)를 최소화하는 과정입니다.
📚참고할 만한 포스팅
“이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.”
손실 함수의 개념과 알고리즘 학습의 의미에 대해 알아봤습니다.
포스팅 내용에 오류가 있다면 아래에 댓글 남겨주시길 바랍니다.
그럼 오늘도 즐겁고 건강한 하루 보내시길 바랍니다 🙂
고맙습니다😊
728×90
반응형
키워드에 대한 정보 loss function 종류
다음은 Bing에서 loss function 종류 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.
이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!
사람들이 주제에 대해 자주 검색하는 키워드 ㄹㅇ 쉬운 딥러닝 3강 : 손실함수 (loss function) 로 컴퓨터에게 오차를 알려줘야함
- 컴퓨터
- 머신러닝
- 딥러닝
- cost function
- loss function
- 손실함수
- 딥러닝 손실함수
- mse
- binary entropy
- 딥러닝 레이어
- 연산법
- 딥러닝 기초
- 딥러닝강좌
ㄹㅇ #쉬운 #딥러닝 #3강 #: #손실함수 #(loss #function) #로 #컴퓨터에게 #오차를 #알려줘야함
YouTube에서 loss function 종류 주제의 다른 동영상 보기
주제에 대한 기사를 시청해 주셔서 감사합니다 ㄹㅇ 쉬운 딥러닝 3강 : 손실함수 (loss function) 로 컴퓨터에게 오차를 알려줘야함 | loss function 종류, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.