목록AI/Deep Learning (49)
우노

L1 Regularization 과 L2 Regularization 을 설명하기 위한 글입니다. 결론부터 얘기하자면 L1 Regularization 과 L2 Regularization 모두 Overfitting(과적합) 을 막기 위해 사용됩니다. 위 두 개념을 이해하기 위해 필요한 개념들부터 먼저 설명하겠습니다. 글의 순서는 아래와 같습니다. Norm L1 Norm L2 Norm L1 Norm 과 L2 Norm 의 차이 L1 Loss L2 Loss L1 Loss, L2 Loss 의 차이 Regularization L1 Regularization L2 Regularization L1 Regularization, L2 Regularization 의 차이와 선택 기준 Norm Norm 은 벡터의 크기를 측정하..

Bias-Variance trade-off 란, 모델링을 할 때 error 처리를 위해 중요하게 알아야하는 개념이며, 자주 헷갈릴 수 있다. Bias Bias(편향)는 예측값과 실제값의 차이이다. 즉, Bias(편향)가 크다는 것은, 예측값과 실제값의 차이가 크다는 것이며, 이는 과소적합을 의미한다. Variance Variance(분산)는 입력에 따른 예측값의 변동성을 의미한다. 즉, Variance(분산)가 크다는 것은, 입력에 따른 예측값의 변동성이 크다는 것이며, 이는 과대적합을 의미한다. Trade-off Trade-off는 시소처럼 한쪽이 올라가면 한쪽이 내려가는 관계를 의미한다. 예제 1 파란 점이 예측값, 빨간 원이 실제값을 의미한다. Bias가 높다는 것은, 예측값과 실제값의 오차가 크다..
파라미터 초기화 / 하이퍼파라미터 정의 num_iterations 만큼 Loop : a. 순방향 전파 b. 비용 함수 계산 c. 역전파 d. 파라미터 업데이트 훈련 된 파라미터를 사용하여 예측

순전파(Feedforawrd)와 역전파(Backpropagation)의 개념 다층 퍼셉트론으로 학습을 한다는 것은, 최종 출력값과 실제값의 오차가 최소화 되도록 가중치(Weight)와 바이어스(Bias)를 계산하여 결정하는 것입니다. 이는, 순전파(Feedforward)를 통해 최종 출력값과 실제값의 오차를 확인하고 역전파(Backpropagation)를 통해 최종 출력값과 실제값의 오차가 최소화 되도록 가중치(Weight)와 바이어스(Bias)를 업데이트하며 진행됩니다. 예를 들어, 농구에서 자유투를 던지는 과정은 순전파(Feedforward)라고 할 수 있고, 던진 공이 어느 지점에 도착했는지를 확인하고 던질 위치를 수정하는 과정을 역전파(Backpropagation)이라고 할 수 있습니다. 예제 :..
파라미터와 하이퍼 파라미터는 명확히 다른 개념입니다. 하지만 많은 사람들이 두 단어를 혼용해서 쓰고 있습니다. 파라미터와 하이퍼 파라미터의 차이에 대해 알아보겠습니다. 파라미터 (Parameter) 파라미터는 모델 내부에서 결정되는 변수입니다. 예 weight coefficient (가중치 계수) bias (편향) weight coefficient, bias와 같은 파라미터들은 모델 내부에서 데이터를 통해 구해집니다. 하이퍼 파라미터 (Hyper parameter) 하이퍼 파라미터는 모델링할 때 사용자가 직접 세팅해주는 값을 뜻합니다. 예 learning rate epoch iteration 모델링을 할 때, 사용자가 직접 세팅해야 하는 값은 상당히 많습니다. 그 모든 게 다 하이퍼 파라미터입니다. 하이..

심층신경망을 구현하기 위해선, Weight matrix, Layer 간의 정확한 dimension 파악이 중요하다. 심층신경망 예 W는 Weight matrix, L은 Layer이며 구성 요소는 다음과 같다. Input x1, x2 W1, W2, W3, W4, W5 L1 (유닛 3개), L2 (유닛 5개), L3 (유닛 4개), L4 (유닛 2개), L5 (유닛 1개) Output yhat Weight matrix dimension을 구하는 공식은 다음과 같다. Wi == ( L i 의 유닛 개수, L i-1 의 유닛개수 ) W3 == ( L3 의 유닛 개수, L2 의 유닛개수 ) == (4, 5) 참고로, 역전파 시 가중치 업데이트 공식은 W - α * dw 를 사용하기 때문에 W와 dw의 dimens..

활성화 함수의 역할 딥러닝 네트워크에서는 노드에 들어오는 값들을 곧바로 다음 레이어로 전달하지 않고, 주로 비선형 함수를 통과시켜 전달한다. 이때 사용하는 함수를 활성화 함수(Activation Function)라고 부른다. 여기서 주로 비선형 함수를 사용하는 이유는, 선형함수를 사용할 시 층을 깊게 하는 의미가 줄어들기 때문이다. 예를 들어, 선형함수 h(x)=cx 를 활성화함수로 사용하는 3-Layer 네트워크가 있다고 가정해보자. 해당 네트워크를 식으로 나타내면 y(x)=h(h(h(x))) 가 된다. 이는 실은 y(x)=c^3x 와 똑같은 식이기 때문에, 결국 하나의 layer로 깊은 layer를 표현 할 수 있다는 것이다. 즉, linear한 연산을 갖는 layer는 수십개 쌓아도, 결국 하나의 ..

경사하강법이란? 비용 함수를 최소화하는 매개 변수를 찾기 위해 사용되는 알고리즘입니다. 경사하강법의 대략적인 순서는 다음과 같습니다. 임의의 매개변수를 정해 비용함수의 시작지점(x축) 으로 지정합니다. 해당 매개변수로 모델의 오차를 구한 다음, 비용함수의 시작지점(y축) 으로 지정합니다. 시작 지점에서 다음 지점으로 갈 방향을 정하기 위해, 시작 지점의 기울기를 계산합니다. 기울기(Gradient)와 보폭(Learning rate)를 사용해 다음 지점으로 이동합니다. 위의 과정을 최소값에 도달 할 때 까지 반복합니다. 배치 사이즈란? 기울기 업데이트 시, 훈련세트를 몇 개씩 묶어서 사용할 지에 대한 정보입니다. 훈련세트의 사이즈가 크다면, 전체 훈련세트를 한 번에 처리해 기울기를 업데이트 하는 것 보단,..
케라스로 구현하는 단순 선형 회귀 튜토리얼 from tensorflow.keras.models import Sequential # keras의 Sequential()을 임포트 from tensorflow.keras.layers import Dense # keras의 Dense()를 임포트 from tensorflow.keras import optimizers # keras의 옵티마이저를 임포트 import numpy as np # Numpy를 임포트 X=np.array([1,2,3,4,5,6,7,8,9]) # 공부하는 시간 y=np.array([11,22,33,44,53,66,77,87,95]) # 각 공부하는 시간에 맵핑되는 성적 # Sequential()로 model이라는 이름의 모델 객체을 만듭니다..