인공지능/Machine & Deep Learning 20

[논문리뷰] Transformer (Attention Is All You Need)

해당 글은 wikidocs의 16 - 01 트랜스포머(Transformer)에 대한 글을 정리한 글입니다. 기존 Seq2Seq 모델의 한계Seq2Seq2 모델은 위와 같은 모습을 가진다. 인코더 파트에서는 입력 문장의 모든 단어들을 순차적으로 입력받고, 마지막에 단어들로부터 얻은 모든 정보들을 압축해서 하나의 벡터로 만든다. 이 벡터를 컨텍스트 벡터(Context Vector)라 부른다. 이 Context Vector는 입력 문장에 대한 문맥적인 정보를 담게 되는데 디코더는 해당 벡터를 받아 번역된 단어를 한 개씩 순차적으로 출력한다. 한 단어에 대한 계산은 앞에 단어에 대한 계산이 끝나야 가능하니 정보의 흐름에 병목 현상(Bottleneck)이 일어날 수 있다는 문제점이 있다. 입력 문장의 길이가 짧던..

배치 정규화(Batch Normalization)

Normalizing training sets신경망의 훈련을 빠르게 할 수 있는 하나의 방법중에 입력으로 들어오는 Feature들을 정규화(Normalizing)이 있다. 위의 표는 두 개의 입력 특성을 가진 훈련 데이터 세트의 분포(산포도)를 나타낸 표다. 두 단계에 따라서 입력을 정규화한다. 1). 데이터 세트의 평균을 0으로 만든다.μ = 1/m 곱하기 1부터 m까지 $x^{(i)}$의 합으로 평균값을 나타내는 벡터다.x는 그럼 모든 훈련 데이터에 대해서 x-μ로 설정된다. (원래 값에서 평균값을 빼주는 것)0의 평균을 갖게 될 때까지 훈련 세트를 이동한다. 2). 분산을 정규화한다. 아직 특성 x1이 x2보다 더 큰 분포도를 가지니, 이 둘을 맞춰주기 위해 분산을 정규화한다.$σ^2$ = 1/m ..

Feature Scaling (ft. 입력 특성 정규화하기)

해당 글은 유튜브 채널(https://www.youtube.com/@Deeplearningai) 의 Machine Learning강의를 정리한 글입니다.  집의 크기와, 방의 개수에 따라 집의 가격을 예측하는 다중 선형 회귀 모델이다. 집의 사이즈의 범위는 방의 개수의 범위보다는 훨씬 클 것이다. 예로 집의 사이즈 범위를 300~2000, 방의 개수의 범위를 0~5라 친다면 큰 가중치를 작은 피처값에 적용하는 것이 합리적일 것이다.  하나의 데이터 샘플을 가지고 가중치를 줘보자. [ $x_1 = 2000, x_2 = 5, 집의 가격 = $500k$ ]하단의 왼쪽 식이 큰 가중치 $w_1$값을 큰 피처값 $x_1$에 부여한 경우다. 최종값이 너무 커져버러셔 실제 집의 가격(500k 달러)와 차이가 너무 크..

최적화 알고리즘 (ft. Momentum, RMSprop, Adam)

경사 하강법보다 빠른 몇 가지 최적화 알고리즘이 존재한다. 그 알고리즘들을 이해하기 위해서는 먼저 지수 가중 평균(Exponentially weighted averages)을 이해해야한다지수 가중 평균에 대한 글은 아래 글을 참조해주세요. 지수 가중 평균(Exponentially weighted averages)해당 글은 유뷰트 채널(https://www.youtube.com/@Deeplearningai) 의 Improving Deep Neural Networks 강의를 정리한 글입니다. Exponentially weighted averages(지수 가중 평균) 경사 하강법보다 빠른 몇 가지 최적화 알고리bruders.tistory.com Gradient descent with momentum모멘텀 알고..

지수 가중 평균(Exponentially weighted averages)

해당 글은 유튜브 채널(https://www.youtube.com/@Deeplearningai) 의 Improving Deep Neural Networks 강의를 정리한 글입니다. Exponentially weighted averages(지수 가중 평균)경사 하강법보다 빠른 몇 가지 최적화 알고리즘이 존재한다. 그 알고리즘들을 이해하기 위해서는 먼저 지수 가중 평균(Exponentially weighted averages)을 이해해야한다.  (통계학에서는 지수 가중 이동 평균이라고도 부른다.)지수 가중 평균(=지수 이동 평균)이란, 데이터의 이동 평균을 구할 때, 오래된 데이터가 미치는 영향을 지수적으로 감쇠(exponential decay) 하도록 만들어 주는 방법이다.  지수 가중 평균의 예위의 그래..

경사하강법의 세 종류(BGD, SGD, MGD)

경사하강법(Gradient Descent Algorithm)경사 하강법은 최적화 알고리즘 중 하나로, 손실 함수(Loss Function)의 값을 최소화하는 파라미터[가중치(weight)와 편향(bias)]를 구하기 위해 손실함수에 대한 각 매개변수의 기울기(Gradient)를 이용하는 방법이다.이 때 기울기가 0인 지점인 손실함수의 값이 최저인 곳이므로 그 지점에 도달하기위해 매개변수는 기울기의 반대방향으로 움직여야 한다. 그래서 경사하강법에서 미분값의 -만큼 빼주는 값으로 가중치를 업데이트하는 것이다.위에선 예시로 가중치에 대해서만 얘기했으나 다른 매개변수인 편향(Bias)에 대해서도 동일하게 적용된다. 결국 최적해에 도달할때까지 매개변수 업데이트를 반복(Iteration)하는 것인데 하나의 반복에서..

가중치 규제 (Weight Regularization) ft. 과적합 해결하기

해당 글은 유튜브 채널(https://www.youtube.com/@Deeplearningai) 의 Machine Learning 강의를 정리한 글입니다.  일반적으로 모델의 복잡도를 키우고, 과적합을 막는 방법론을 사용한다고 했다. 과적합을 해결할 수 있는 3가지의 방법을 알아보자. 1. 더 많은 훈련 샘플 모으기 과적합의 경우 각 훈련 샘플에 너무 잘 맞다보니 곡선의 형태가 둘쑥날쑥하다. 더 많은 훈련 샘플을 모으면 그만큼 모델의 들쑥날쑥한 정도가 줄어들어 우측 그래프처럼 일정하게 완만히 올라가는 그래프의 형태를 얻을 수 있다.   2. 피쳐들 중에 몇 개만 선택하기 많은 피처에 비해 데이터셋이 충분치 않으면 과적합을 유발할 수 있으니 필요할 것만 같은 피쳐만 뽑자. 이렇게 예측값(y)에 가장 영향을..

Linear Regression 과 Logistic Regression

해당 글은 유튜브 채널(https://www.youtube.com/@Deeplearningai) 의 Machine Learning 강의를 정리한 글입니다.  분류 문제를 선형 회귀로 해결할 수 없는 이유 선형 회귀(Linear regression) 문제는 집의 크기와 방의 크기 등의 피쳐값을 통해 집의 가격을 알아보는, 즉 예측값이 연속적인 값으로 나오는 문제들에 대해 사용되었다. 그렇다면 어떤 사진이 고양이인지 아닌지 라던가 환자가 어떤 병을 가진지아닌지 또는 숫자 이미지가 0부터 9까지의 숫자 중 어떤 숫자를 가리키는지 등과 같은 분류 문제는 집의 가격을 예측하는 문제처럼 선형식을 통해 해결할 수 있을까?  환자의 종양의 크기를 보고 이 종양이 악성종양인지 아닌지를 예측해야한다고 해보자.해당 분류 문..

Classification: 붓꽃(Iris) 데이터 분석하기

해당 분석글은 https://liz09045.tistory.com/94 글을 토대로 작성되었습니다. 분류(Classification) 문제로 유명한 붓꽃(Iris) 데이터셋을 분석해보자. 붓꽃(Iris)은 위와 같이 3가지의 종류(Setosa, Versicolor, Virginica)를 가지고 있다. 이제 샘플 데이터를 불러와보자. 사이키런(Sklearn)에는 머신 러닝을 쉽게 배울 수 있게 샘플 데이터셋들을 가지고 있다. 그 중에 붓꽃(Iris) 데이터셋도 있으니 이를 로드해준다. 붓꽃 데이터셋은 자료형이 딕셔너리(Dictionary)니 먼저 Key 값을 확인해주자. [ 파이썬에는 딕셔너리라 하는 자료형이 있다. 단어 뜻이 '사전'인 것처럼, 사전처럼 이해하면 된다. "flower" 이 라는 단어에 "..

Train data | Test data | Validation data 차이

평가 데이터(Test data)의 필요성 기계도 사람이 학습과정을 거쳐 능력이 향상되듯이, 반드시 훈련(Training) 과정을 거쳐 성능을 쌓아 올린 후, 그것을 평가하는 단계로 모델 완성을 해줘야 한다. Train set 와 Test set이 필요한 이유가 여기에 있다. '학습/훈련 ⇒ 평가' 는 필수적이다. 위 데이터셋은 여러 증상에 따른 코로나 감염여부에 관한 것이다. 우리는 사람들의 증상에 따라 코로나 감염 여부를 예측하는 모델을 만들고 싶은 거니 맨 오른쪽 초록부분이 우리가 알고 싶은(예측하고 싶은) 목표가 된다. 이 목표에 영향을 미치는 기침, 발열 등의 특징들은 피처(feature)다. 위 데이터는 해당 증상을 가지고 있으면 1, 없으면 0으로 표기하고 있으며 코로나 양성여부의 경우 양성일..