최적화란? 최적화란 목적함수(Objective Function)를 최대화 혹은 최소화하는 파라미터 조합을 찾는 과정이다. 목적함수가 이익(profit), 점수(score) 등일 경우에는 최대화하는 것이 목표가 될 것이고, 목적함수가 비용함수(cost). 손실함수(loss), 오차(error) 등일 경우에는 최소화하는 것이 목표가 된다. 어떤 방향으로 최적화를 진행하는지에 대한 차이가 존재할 뿐이지, 방법론적으로는 큰 차이가 없다. 위와 같은 2차 손실 함수로 최적화를 진행한다고 하면, 손실함수의 값이 가장 작은 곳을 찾으면 된다. 위 그래프에서는 한 눈에 봐도 $x=T$일 때 값이 가장 작은 것을 확인할 수 있다. 하지만 일반적으로 손실 함수가 위 그래프처럼 단순하게 그려지지는 않는다. 따라서 최적화 알..
손실함수(Loss Function)의 역할 손실함수는 모델의 출력값과 사용자가 원하는 출력값의 오차를 의미한다. 정답 $y$와 예측 $\hat{y}$를 입력으로 받아 실숫값 점수를 만드는데, 점수가 높을수록 모델의 성능이 나쁘다고 판단하면 된다. 손실함수의 값이 최소화 되도록 하는 가중치(weight)와 편향(bias)를 찾는 것이 모델의 학습 목표이다. 그렇다면 오차는 어떤 식으로 정의할까? 오차를 정의하는 방식에는 여러가지가 존재한다. 평균 절대 오차 (Mean Absolute Error) $$ MAE = \frac{1}{N}\sum\limits_{i=1}^{N}|\hat{y}_i-y_i| $$ 예측한 값과 실제값 사이의 오차를 절댓값을 취한 후 평균을 내서 정의한다. 일반적으로 손실 함수로 사용되진..
신경망모델의 각 층(layer)에서는 인력값과 가중치를 곱한 후 전체를 합하여 $ y=x_i w_i + b $를 계산하고 마지막에 활성화 함수를 거쳐 $ h(x) $를 출력한다. 그렇다면 신경망에서 활성화 함수를 사용하는 이유는 무엇일까? 활성화함수란? 노드에 입력된 값들을 비선형 함수에 통과시킨 후 다음 레이어로 전달하게 되는데, 이때 사용하는 함수를 활성화 함수(Activation function)라고 한다. 활성화함수를 사용하는 이유 다층 퍼셉트론(MLP)에서 봤듯이 은닉층을 무작정 쌓는다고 퍼셉트론을 선형 모델에서 비선형 모델로 바꿀 수 있는 것은 아니다. 기본적으로 퍼셉트론은 $ y=ax+b $ 꼴의 선형 함수를 나타내기 때문에, 층이 두 개인 신경망을 생각해 볼 경우 $ y=h(h(x)) = ..
인공신경망이란? 갓 태어난 아이는 사물을 잘 구분하지 못한다. 인생을 살아가면서 다양한 것들을 보고 배우게 되며, 개념이 생기게 되고 무의식적인 학습을 통해 사물을 구분하고 분류하게 되는 것이다. 이는 뇌의 뉴런을 통한 학습 체계 덕분에 가능한 것이다. 그렇다면, 뇌의 뉴런을 그대로 모방한 알고리즘을 만든다면, 사람의 학습 체계를 컴퓨터에도 적용할 수 있지 않을까? 인공신경망(Artificial Neural Network, ANN)은 뇌의 구조와 기능에서 영감을 받아 만들어진 머신러닝 모델이다. 이 모델은 인간의 신경 세포인 뉴런을 모방하여 만들어졌으며, 여러 계층으로 이루어진 네트워크 구조를 가지고 있다. 각 계층에는 뉴런들이 존재하며, 이들은 서로 연결되어 정보를 주고받는다. 뉴런을 인공적으로 표현해..
기계를 인간 행동의 지식에서와 같이 행동하게 만들 수 있을까? 이러한 의문에서 시작된 머신러닝은 인공지능(AI)의 중요한 부분을 차지하고 있다. 인공지능 (Artificial Intelligence, AI) 인공지능(AI)는 학습, 문제 해결, 패턴 인식 등과 같이 주로 인간 지능과 연결된 인지 능력을 인공적으로 구현하려는 컴퓨터 과학의 분야 중 하나이다. 여기서 중요한 개념 중 하나가 바로 머신러닝(Machine Learning)이다. 머신러닝 (Machine Learning) 머신러닝은 인공지능의 하위 집합으로, 주로 데이터를 통해 모델이 스스로 학습하고 패턴을 인식하게 한다. 예전에는 인공지능을 개발할 때 해당 분야의 전문가들이 만든 많은 양의 샘플을 데이터베이스화하여 수작업으로 컴퓨터에 등록했다...