오른쪽 손실 함수 [PyTorch]

자신에게 적합한 것을 결정하는 데 도움이되는 손실 함수에 대한 간략한 소개 [PyTorch].

Unsplash에 Ray Reyes의 사진

손실 함수는 신경망 설계에서 가장 중요한 부분 중 하나입니다. 손실 함수는 모델과 상호 작용하고 원하는 것을 알려주는 데 도움이됩니다. 이것이 바로이를 "객관적 함수"로 분류하는 이유입니다. 손실 함수의 정확한 정의를 살펴 보겠습니다.

에서 수학적 최적화의사 결정 이론 하는 손실 함수 또는 비용 함수는 매핑하는 기능입니다 이벤트 에 하나 또는 그 이상의 변수의 값을 실수 직관적 이벤트와 연관된 일부 "비용"을 나타내는. 최적화 문제는 손실 함수를 최소화하기 위해 노력한다. 목적 함수 (특정 도메인에서, 다양하게 불리는 손실 함수 또는 음수 인 보상 기능 하는 이익 기능을 하는 유틸리티 기능을 하는 피트니스 기능 이 극대화되어야하는 경우 등). —https://en.wikipedia.org/wiki/Loss_function

딥 러닝에서 목적 함수는 출력을 최소화해야하는 함수입니다. 따라서 최적화 알고리즘은 목적 함수에서 최소값을 찾아야합니다. 이는 일반적으로 기울기를 계산 한 다음 최적화 알고리즘으로 전달하는 역 전파 알고리즘에 의해 수행됩니다. 그런 다음 최적화 알고리즘은 더 낮은 목적 함수 출력에 도달하기 위해 신경망 매개 변수와 가중치를 변경합니다.

최적화 알고리즘의 목표가 항상 목적 함수를 최소화하는 것은 아니라는 점에 유의해야합니다. 목적 함수를 최대화해야하는 경우가 있습니다. 최소화 할 때 비용 함수, 손실 함수 또는 오류 함수라고도합니다.

따라서 손실 함수가 가장 중요하고 손실 함수 없이는 모델이 달성하기 위해 필요한 것을 이해할 수 없음이 분명합니다.

두 가지 유형의 손실이 있습니다.

A) 회귀 손실 -딥 러닝의 회귀 손실 함수는 수량을 예측하는 함수 또는 모델이며 회귀 모델에 적용됩니다. 회귀 손실의 예로는 평균 제곱 오차 손실 ( L2 손실 ) 및 평균 절대 오차 손실 ( L1 손실 )이 있습니다.

B) 분류 손실 — 분류 기능 또는 모델은 값이나 수량을 예측하는 대신 제공된 클래스 중 하나에 대한 입력을 분류합니다. 이러한 손실 함수는 이러한 모델이보다 효과적인 분류를 수행하는 데 도움이됩니다.

아래에서 회귀를 간략하게 다루 겠지만 딥 러닝의 더 많은 모델이 분류 작업에 전념하기 때문에이 기사의 대부분은 분류 손실에 초점을 맞출 것입니다. 회귀 손실에 대한 특정 기사를 원하시면 의견에 알려주십시오.)

회귀 손실

L1 손실

평균 절대 오차 (MAE) 라고도하는 L1 손실 은 이름에서 알 수 있듯이 모든 변수에 대한 절대 손실의 평균입니다. 따라서 MAE를 다음과 같이 작성할 수 있습니다.

L1 손실

L2 손실

L2 손실은 평균 제곱 오차 (MSE) 라고도 합니다. 쉽게 추론 할 수있는 L2 손실은 예측 변수와 레이블 변수 간의 차이 제곱의 평균입니다. 다음과 같이 표현됩니다.

L2 손실

L1 및 L2 손실은 Python의 PyTorch 라이브러리에서 쉽게 가져올 수 있습니다. 간단한 계산 기반 함수를 사용하여 쉽게 구현할 수도 있습니다. 다음은 PyTorch 기반 사용에 대한 코드 스 니펫입니다.

from torch.nn import L1loss as L1
from torch.nn import MSELoss as L2
input=torch.rand(10,8,requires_grad=True)#random tensor as input
output=L1(input,target)#target tensor(label)
output.backward

머신 러닝은 데이터가 수집되는 위치 (엣지 장치)에 빠르게 접근하고 있습니다. Fritz AI 뉴스 레터를 구독하여 이러한 전환에 대해 자세히 알아보고 비즈니스 확장에 어떻게 도움이 될 수 있는지 알아보십시오.

분류 손실

회귀 모델에 대한 단순 손실 함수를 간략히 살펴 보았으므로 이제 분류 손실 함수로 이동합니다. 일반적으로 출력 계층에서 활성화 함수가 필요하므로 손실 함수가 처리하기 더 쉬운 방식으로 출력 형식이 지정됩니다.

활성화 함수 모델을 비선형 형태를 제공 한 것이다. 활성화가 없으면 학습 할 수있는 내용이 제한되는 단순한 선형 모델을 갖게됩니다. 활성화 함수의 도움으로 우리는 비선형 성의 형태를 도입하여 신경망을 더 많이 배울 수 있습니다.

활성화 기능은 손실 기능이 출력을 "인식"하는 데 도움이된다는 점에 유의해야합니다. 모든 가능성에서 손실 기능은 동일하거나 유사한 활성화 기능 없이는 작동하지 않습니다. 손실 함수를 살펴보기 전에 몇 가지 출력 활성화 함수를 살펴 보겠습니다.

시그 모이 드

시그 모이 드 활성화 레이어는 입력을 (0,1) 범위의 값으로 스쿼시하는 레이어입니다. 이것은 출력을 확률로 변환하는 데 필요합니다. S 자 곡선은 특징적인 'S'자 모양의 곡선입니다.

Sigmoid 활성화 — https://en.wikipedia.org/wiki/Sigmoid_function

곡선을 생성하는 방정식은 다음과 같습니다.

시그 모이 드 함수

소프트 맥스

Softmax는 레이어에있는 모든 단위의 정규화 된 지수 함수를 계산하는 활성화 함수입니다. 수학적으로 다음과 같이 표현할 수 있습니다.

Softmax 기능

까다로워 보이죠? 내가 당신을 위해 그것을 분해하겠습니다. 소프트 맥스 활성화 함수가하는 일은 크기 N의 입력 벡터를 취한 다음 각 값이 0과 1 사이에 있도록 값을 조정하는 것입니다. 또한 벡터의 N 값의 합은 지수의 정규화로 1이됩니다.

소프트 맥스 활성화 기능을 사용하려면 라벨이 원-핫 인코딩 되어야합니다 . 여기서 N 값은 모델이 작업해야하는 클래스 수에 해당합니다.

Tanh

tanh 활성화 함수는 모양과 관련하여 시그 모이 드 함수와 매우 유사합니다. 입력의 쌍곡 탄젠트 만 계산합니다. 그 결과 입력은 (-1,1) 범위에서 스쿼시됩니다. 곡선은 다음과 같이 시각화 할 수 있습니다.

Tanh 함수-https://commons.wikimedia.org/wiki/File:Tanh.png

이제 다양한 출력 활성화에 대해 알았으므로 손실 함수로 이동하겠습니다.

NLL 손실

NLL은 Negative Log Likelihood를 나타냅니다. 출력 활성화 레이어로 소프트 맥스가있는 모델에서만 사용됩니다. 수학적으로 NLL 손실을 다음과 같이 쓸 수 있습니다.

NLL 손실 — (K : 클래스 수)

그렇게 간단합니까? 네! 그러나 단순히이 손실 함수를 최소화하는 것이 더 나은 솔루션에 도달하는 데 어떻게 도움이 될까요? 음의 로그 우도는 최대 우도 추정치에서 파생됩니다. 즉, 모델의 로그 가능도를 최대화하여 NLL을 최소화하려고합니다.

주목해야 할 중요한 점은 확률 함수의 로그를 최대화하는 것은 로그가 단조 증가하는 곡선이기 때문에 확률 함수를 최대화하는 것과 유사하게 작동한다는 것입니다. 이렇게하면 확률 로그의 최대 값이 원래 확률 함수와 동일한 지점에서 발생합니다.

NLL 손실의 짧은 PyTorch 구현을 살펴 보겠습니다.

교차 엔트로피 손실

대부분의 상황에서 신경망은 훈련 데이터에서 함수를 예측하고 해당 예측을 기반으로 테스트 데이터를 분류 할 것으로 예상됩니다. 따라서 네트워크는 확인하고 평가해야하는 확률 분포를 추정합니다. 교차 엔트로피는 주어진 임의 변수 또는 일련의 이벤트에 대한 두 확률 분포 간의 차이를 측정하는 함수입니다.

범주 형 교차 엔트로피는 시그 모이 드 활성화에서 작동합니다. 수학적으로 다음과 같이 표현할 수 있습니다.

교차 엔트로피

사람들이 혼란스러워하는 한 가지 주요 점은 음의 로그 가능성과 교차 엔트로피가 매우 유사한 비용 함수라는 것입니다. 무엇이 다른가요? 여기에 그 혼란을 해소하기위한 설명이 있습니다.

교차 엔트로피 및 음의 로그 가능성은 본질적으로 동일한 비용 함수입니다. 즉, 둘 다 로그 가능성을 최대화하는 데 사용됩니다. 그러나 시그 모이 드 활성화 함수의 출력은 NLL 손실 함수에 직접 적용 할 수 없습니다. 교차 엔트로피 함수에 적용해야합니다. 마찬가지로 NLL 손실 함수는 소프트 맥스 계층의 출력을 가져올 수 있는데, 이는 교차 엔트로피 함수가 할 수없는 일입니다!

교차 엔트로피 함수에는 몇 가지 변형이 있으며 이진 교차 엔트로피가 가장 많이 사용됩니다. BCE 손실은 교차 엔트로피와 유사하지만 이진 분류 모델, 즉 2 개의 클래스 만있는 모델에만 해당됩니다.

교차 엔트로피 손실의 PyTorch 구현을 살펴 보겠습니다.

무엇 향후 계획?

이러한 손실 함수에 대한 고유 한 코드를 개발해보십시오. 이러한 손실 함수를 이해하는 데 도움이 될 것이며 때가되면 특정 문제를 처리하는 데 필요한 손실 함수를 식별 할 수 있습니다. 내가 어떤 식 으로든 도움을 줄 수 있으면 의견으로 알려주십시오.)

더 빠른 업데이트를 위해 내 블로그를 확인하고 양질의 콘텐츠를 구독하십시오 : D

Hmrishav Bandyopadhyay는 인도 Jadavpur University의 전자 통신과에서 2 학년 학부생입니다. 그의 관심사는 딥 러닝, 컴퓨터 비전 및 이미지 처리에 있습니다. 연락 할 수있는 주소는 — hmrishavbandyopadhyay@gmail.com || https://hmrishavbandy.github.io

편집자 주 : Heartbeat 는 모바일 앱 개발과 기계 학습의 새로운 교차점을 탐구하는 데 전념하는 기여자 중심의 온라인 출판 및 커뮤니티입니다. 우리는 각계 각층의 개발자와 엔지니어를 지원하고 영감을주기 위해 최선을 다하고 있습니다.

편집자 독립적 인 Heartbeat는 개발자가 장치를보고 듣고 감지하고 생각하도록 가르치는 데 도움이되는 기계 학습 플랫폼 인 Fritz AI 가 후원하고 게시합니다 . 우리는 기여자에게 돈을 지불하고 광고를 판매하지 않습니다.

기여하고 싶다면 기여자 요청으로 이동하세요 . 또한 주간 뉴스 레터 ( Deep Learning WeeklyFritz AI 뉴스 레터 )를 구독 하고 Slack 에서 가입 하고 Twitter 에서 Fritz AI를 팔로우 하여 모든 최신 모바일 기계 학습을 확인할 수 있습니다.

Suggested posts

Python으로 차트 주석 자동 생성

Python으로 차트 주석 자동 생성

따라서 매일 업데이트되는 최신의 아름다운 대화 형 대시 보드를 만들었으며 이제 경영진은 로그인하여 자신이 원할 때마다 판매 상황을 확인할 수 있습니다. 그러나 항상 그래프를 싫어하고 보고서에 숫자를 제공하기를 원하는 사람들이 있습니다. 그들은 차트를 클릭하지 않을 것입니다.

간단한 Python 코드로 클릭 연결을 위해 웹 페이지를 최적화하는 방법

간단한 Python 코드로 클릭 연결을 위해 웹 페이지를 최적화하는 방법

웹 페이지에서 사용자에게 표시 할 최상의 레이아웃, 이미지 및 텍스트를 선택하는 것은 어렵습니다. 그러나 반드시 그럴 필요는 없습니다.

Related posts

머신 러닝 모델 품질 향상을위한 우리의 탐구

머신 러닝 모델 품질 향상을위한 우리의 탐구

이전 블로그 게시물에서 오늘날의 기계 학습 생태계에서 품질과 신뢰가 얼마나 중요한 문제인지 살펴 보았습니다. 읽을 기회가 없다면이 게시물에 뛰어 들기 전에 읽어 보는 것이 좋습니다.

인공 지능 및 학습

인공 지능 및 학습

인공 지능 (AI) 알고리즘이 대중화 되었기 때문에, 특히 엔터테인먼트 및 소셜 미디어의 가장 인기있는 제품에 고용되거나 차를 성공적으로 운전할 수 있기 때문에 이전과는 달리 공개 조사를 받았습니다. 모든 종류의 분야에서 온 사람들은 Elon Musk 또는 Steven Hawking과 같은 AI에 대해 이야기하는 유명 과학자의 영향을 받아 알고리즘을 우리 삶의 특정 측면에 허용하는 윤리적 의미와 그들의 경력이 새로운 기술로 대체 될 위험이 있습니다.

앰비언트 인텔리전스 — 보이지 않는 인터페이스

인간-컴퓨터 상호 작용을 인간-환경 상호 작용으로 대체하기 위해 Ambient Intelligence가 설정되는 방식

앰비언트 인텔리전스 — 보이지 않는 인터페이스

미디어, Ex Machina 및 I, Robot과 같은 공상 과학 영화, Elon Musk와 같은 몇몇 노골적인 공상가 덕분에 대부분의 사람들은 이제 인공 지능 (AI), 다양한 하위 집합 및 많은 잠재력에 대한 기본적인 이해를 가지고 있습니다. 응용 프로그램. 하지만 AmI (Ambient Intelligence)는 어떻습니까? 들어 보셨나요? 이 신흥 분야가이 시점에서 10 년 이상 지속 되었음에도 불구하고 걱정하지 마십시오.

AI 혁명에서 소프트웨어 엔지니어조차 안전하지 않을 수 있습니다.

AI 혁명에서 소프트웨어 엔지니어조차 안전하지 않을 수 있습니다.

기계 학습 및 유사한 기술이 경제에 미치는 영향을 평가하는 논쟁에서 세계 전문가들은 크게 두 개의 진영으로 나뉩니다. 우리가 낙관론자라고 부르는 한 진영은 과거의 기술적 격변과 마찬가지로이 디지털 혁명이 경제를 탈선시키고 실업률을 영원히 전염병 수준으로 치 솟게하지 않을 것이라고 생각합니다.