ML/DL(11)
-
[DL] 4. Backpropagation
저번 글에서는, 기본적인 최적화 기법인 GD와 SGD에 대해 살펴봤다.그 두 가지 기법 모두 수치 미분으로 미분값을 계산했다. 수치 미분은 구현하기 쉽지만, 계산 시간이 오래 걸린다는 단점이 존재한다. 이번 글에서는, 수치 미분보다 효율적으로 미분값을 계산하는 "오차역전파법(backpropagation)"에 대해 살펴볼 것이다. 1. 계산 그래프(computational graph)계산 그래프는 계산 과정을 그래프로 나타낸 것이다. 노드에는 연산 정보를, 엣지에는 계산 결과를 표기한다.(이전 글을 통해 눈치채겠지만, 신경망도 대부분 계산 그래프로 표현한다.) 이해를 돕기 위해 간단한 예시 문제의 계산 과정을 어떻게 계산 그래프로 나타낼 수 있는지 살펴보자!예시 문제1: 슈퍼에서 사과를 2개, 귤을 3개 ..
2024.02.13 -
[DL] 3.1. Advanced Optimization (Momentum, RMSprop, Adam)
이번 글에서는, (mini-batch) SGD의 단점을 살펴보고, 이를 보완한 최적화 기법 Momentum, RMSprop 그리고 마지막으로 이 둘을 합친 Adam에 대해 알아볼 것이다. SGD의 단점1. (mini-batch) SGD는 비등방성 함수에서 불필요한 움직임을 많다. 즉, 탐색(=학습) 경로가 매우 비효율적이다.왜냐하면, 현재 위치에서 가장 가파른 방향은 현재 위치에서의 등고선과 수직인 방향이기 때문이다. 비등방성(Anisotropy) 함수는 각 위치에서의 기울기가 가리키는 지점이 하나가 아니라 여러 개인 함수다.등고선(Contour)은 같은 함수값을 가지는 모든 지점을 연결한 선이다. 2. (mini-batch) SGD는 위험한 기법이다.예를 들어, "눈을 가린 채 하산을 하고 있다"고 가..
2024.02.13 -
[DL] 3. Optimization (GD, SGD)
저번 글에서, "손실 함수"가 무엇인지 대해 알아봤다.그리고, 손실 함수를 활용해 최적의 매개변수를 구하는 무식한(?) 방법 두 가지에 대해서도 살펴봤다. 첫번째, 매개변수를 일일이 바꿔가며 손실값이 가장 낮은 매개변수를 찾는다.위 방식은 시간이 매우 오래 걸리는 매우 무식한 방법이다. 두번째, "손실 함수(Loss(a,b)">Loss((ˆθ)의 도함수를 구해 미분값이 0이 되는 부분을 찾는다.위 방식도 매우 비효율적이다. 왜냐하면, 함수가 복잡해질수록 도함수 구하기가 매우 어려워지기 때문이다. 이번 글에서는, 위 방식보다 더 빠르고 효율적이게 최적의 매개변수(ˆθ)를 구하는 방법에는 무엇이 있는지 알아볼 것이다. 1. 경사 하강법(Gradient Descent)경사 ..
2024.02.10 -
[DL] 2. Loss Function (MSE, CEE)
저번 글에서, (인공) 신경망이 무엇인지 알아보았다. 그럼 지금부터, 어떻게 (인공) 신경망으로 문제를 풀 수 있는지 예시를 통해 알아보겠다.예시: 칼바람 1대1 승패 예상A와 B의 롤 티어와 플레이할 챔피언의 숙련도가 주어졌을 때, 칼바람 1대1 승패를 예측하는 문제를 (인공) 신경망으로 풀어보자!다시 말해, 2명의 롤 티어와 챔피언 숙련도가 입력값으로 주어졌을 때, 칼바람 1대1 승패를 출력값으로 반환하는 (인공) 신경망을 만들어보자! 신경망 설계우선, 신경망을 설계해야 한다.어떤 특징을 추출해야 문제풀이에 도움이 될지 모르겠지만,아래 방식으로 특징을 추출하면 문제풀이에 도움이 되는 특징을 얻을 수 있다고 추정했다.h = a×(A 티어) + b×(A의 챔피언 숙련도) + ..
2024.02.08 -
[DL] 1. What is Neural Network?
신경망이 무엇인지 알기 위해선 신경망의 기원인 퍼셉트론에 대해 집고 넘어가야 한다.1. 퍼셉트론퍼셉트론(=perceptron)은 "사람의 뇌 신경세포 뉴런의 동작 과정에 영감을 받아 만든 수학적 모델"로,"다수의 신호(0/1)를 입력으로 받아 하나의 신호(0/1)를 출력하는 모델"을 의미한다.(참고로, 여기서 이야기하는 퍼셉트론은 "인공 뉴런" 혹은 "단순 퍼셉트론"을 의미한다.) 위 그림은 2개의 입력 신호를 받은 퍼셉트론이다.x1과 x2는 입력 선호, w1과 w2는 기중치(=weight)를 뜻한다.(참고로, 원은 노드(=node) 혹은 뉴런(=neuron), 선은 엣지(=edge)라고 부른다.) 그럼 퍼셉트론이 어떤 방식으로 작동하는지 아래 식을 통해 알아보자. $$f(x_1,..
2024.02.02