본문 바로가기

분류 전체보기50

[딥러닝을 이용한 자연어 처리 입문] 소프트맥스 회귀 소프트맥스 회귀 1. 소프트맥스 함수 - 소프트맥스 함수는 선택해야 하는 선택지의 총 개수가 k라고 할 때, k차원의 벡터를 입력받아 각 클래스에 대한 확률을 추정함 예시) 꽃받침 길이, 꽃받침 넓이, 꽃잎 길이, 꽃잎 넓이로부터 setosa, versicolor, virginica라는 3개의 춤종 중 어떤 품종인지를 예측하는 문제 - 소프트맥스를 구하는 식은 아래와 같음 - 어떤 꽃의 꽃받침 길이, 꽃받침 넓이, 꽃잎 길이, 꽃잎 넓이에 대한 정보로 setosa, versicolor, virginica이 될 확률이 각각 0.26, .070, 0.04가 나왔고, 실제 품종이 versicolor이라고 하면 아래의 그림과 같이 표현할 수 있음 - 이와 같이 실제값을 원-핫 인코딩으로 표현할 경우 단어의 유사.. 2023. 4. 16.
[딥러닝 파이토치 교과서] 활성화함수와 손실 함수 활성화함수 - 전달함수에서 전달받은 값을 출력할 때 일정 기준에 따라 출력 값을 변화시키는 비선형 함수 1) 시그모이드 함수 - 선형 함수의 결과를 0~1 사이에서 비선형 형태로 변형해줌 - 모델의 깊이가 깊어지면 기울기가 사라지는 '기울기 소멸 문제' 발생 참고) 시그모이드 함수의 단점 - 기울기 소실 문제: 입력의 절대값이 크게 되면 0이나 1로 수렴하게 되는데 이와 같이 수렴된 뉴런의 그래디언트 값은 0이기 때문에 역전파에서 0이 곱해짐 -> 역전파가 진행됨에 따라 아래층에는 아무것도 전달되지 않는 기울기 소실 문제 발생 - 원점이 중심이 아님: 시그모이드 함수는 항상 양수를 출력하기 때문에 출력의 가중치 합이 입력의 가중치 합보다 커질 가능성이 높으며, 이러한 이유로 가장 높은 레이어에서는 활성화.. 2023. 4. 16.
[딥러닝을 이용한 자연어 처리 입문] 벡터와 행렬 연산 텐서 1. 벡터와 행렬과 텐서 - 벡터는 숫자가 나열된 형상이며, 파이썬에서는 1차원 배열 또는 리스트로 표현함 - 행렬은 행과 열을 가지는 2차원 형상을 가진 구조임 - 3차원부터는 주로 텐서라고 부름 2. 텐서 - 0차원부터 3차원 텐서는 아래와 같이 표현됨 import numpy as np # 0차원 텐서(스칼라) d1 = np.array(5) print('d1의 차원 :',d1.ndim) print('d1의 크기(shape) :',d1.shape) # 1차원 텐서(벡터) d2 = np.array([1,2,3,4]) print('d2의 차원 :',d2.ndim) print('d2의 크기(shape) :',d2.shape) # 2차원 텐서(행렬) d3 = np.array([[1,2,3,4], [5,6.. 2023. 4. 16.
[딥러닝을 이용한 자연어 처리 입문] 선형 회귀와 로지스틱 회귀 선형 회귀 1. 선형 회귀 1) 단순 선형 회귀 분석 y=wx+b w: 가중치(weight) b: 편향(bias) 2) 다중 선형 회귀 분석 y=w_1*x_1+w_2*x_2+...+w_n*x_n+b 2. 가설(hypothesis) 세우기 -x와 y의 관계를 유추하기 위해 수학적으로 식을 세워보게 되는데 머신러닝에서는 이러한 식을 가설이라고 함 3. 비용함수(cost function): 평균 제곱 오차(Mean Squared Error, MSE) - w와 b를 찾기 위해서 실제값과 가설로부터 얻은 예측값의 오차를 계산하는 식을 세우고, 이 식의 값을 최소화하는 최적의 w와 b를 찾아냄 - 이때 실제값과 예측값에 대한 오차에 대한 식을 목적 함수(objective function, 함수의 값을 최소화하거나 .. 2023. 4. 16.