- Today
- Total
목록View All (355)
DATA101
📚 목차 1. 개념 2. 장점 3. 단점 1. 개념 AdaGrad는 딥러닝 최적화 기법 중 하나로써 Adaptive Gradient의 약자이고, 적응적 기울기라고 부릅니다. Feature마다 중요도, 크기 등이 제각각이기 때문에 모든 Feature마다 동일한 학습률을 적용하는 것은 비효율적입니다. 이러한 관점에서 AdaGrad 기법이 제안되었습니다. AdaGrad는 Feature별로 학습률(Learning rate)을 Adaptive하게, 즉 다르게 조절하는 것이 특징입니다. AdaGrad를 수식으로 나타내면 아래와 같습니다. $$ g_{t} = g_{t-1} + (\nabla f(x_{t-1}))^{2} $$ $$ x_{t} = x_{t-1} - \frac{\eta}{\sqrt{g_{t} + \epsi..
본 포스팅에서는 딥러닝 최적화(optimizer) 기법 중 하나인 Momentum의 개념에 대해 알아봅니다. 먼저, Momentum 기법이 제안된 배경인 경사 하강법(Gradient Descent)의 한계점에 대해 다루고 알아보도록 하겠습니다.📚 목차1. 경사 하강법의 한계 1.1. Local Minimum 문제 1.2. Saddle Point 문제2. Momentum 2.1. 개념 2.2. 수식1. 경사 하강법의 한계경사 하강법(Gradient Descent)은 크게 2가지 한계점이 있습니다. 첫째, Local Minimum에 빠지기 쉽다는 점. 둘째, 안장점(Saddle point)를 벗어나지 못한다는 점. 각각에 대해 알아봅니다.1.1. Local Minimum..
📚 목차1. 최적화 개념 2. 기울기 개념 3. 경사 하강법 개념 4. 경사 하강법의 한계1. 최적화 개념딥러닝 분야에서 최적화(Optimization)란 손실 함수(Loss Function) 값을 최소화하는 파라미터를 구하는 과정입니다(아래 그림 1 참고). 딥러닝에서는 학습 데이터를 입력하여 네트워크 구조를 거쳐 예측값(\(\hat{y}\))을 얻습니다. 이 예측값과 실제 정답(\(y\))과의 차이를 비교하는 함수가 손실 함수입니다. 즉, 모델이 예측한 값과 실젯값의 차이를 최소화하는 네트워크 구조의 파라미터(a.k.a., Feature)를 찾는 과정이 최적화입니다. 최적화 기법에는 여러 가지가 있으며, 본 포스팅에서는 경사 하강법(Gradient Descent)에 대해 알아봅니다.2. 기울기 개념..
💡 목표 평균절대오차(MAE)의 개념 및 특징에 대해 알아봅니다. 1. MAE 개념 평균절대오차(Mean Absolute Error, MAE)는 모든 절대 오차(Error)의 평균입니다. 여기서 오차란 알고리즘이 예측한 값과 실제 정답과의 차이를 의미합니다. 즉, 알고리즘이 정답을 잘 맞힐수록 MSE 값은 작습니다. 따라서, MAE가 작을수록 알고리즘의 성능이 좋다고 볼 수 있습니다. MAE의 수식을 살펴보겠습니다. $$ E = \sum_{i}|y_{i} -\tilde{y_{i}}| $$ \(E\): 손실 함수 \(y_i\): \(i\)번째 학습 데이터의 정답 \(\tilde{y_i}\): \(i\)번째 학습 데이터로 예측한 값 2. MAE 특징 2.1. 오차와 비례하는 손실 함수 MAE는 손실 함수가 ..
📝 문제 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 💡 접근법 BFS 알고리즘과 큐(Queue) 자료구조를 활용하여 문제를 해결하였습니다. 문제해결 절차는 다음과 같습니다. 모든 국가를 대상으로 각각 중심국으로 선정하고, 상하좌우 방면에 연합이 가능한 인접국이 있는지 탐색하니다. 만일 연합국이 성립된다면, 해당 인접국을 중심으로 다시 상하좌우 방면의 인접국과 연합국이 성립되는지 여부를 확인합니다. 이 과정은 상하좌우 방면으로..
📝 문제 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 💡 접근법 조합(Combination)을 활용하여 문제를 해결하였습니다. 총 2팀이기 때문에 하나의 팀을 구성하면 자동으로 나머지 한 팀의 팀원은 정해집니다. 먼저, 콤비네이션을 활용하여 한 팀을 구성할 수 있는 모든 경우를 구합니다. 팀 내 \(i\), \(j\)번째 구성원 간의 시너지로 짝을 이루어 능력치를 더하는 과정을 반복합니다. start 팀과 link 팀 각각의 능력치 합의 차를 절댓값으로 받는 과..
📝 문제 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 💡 접근법 조합(combination)을 활용하여 문제를 해결하였습니다. 치킨 집의 탐색 순서가 치킨 집과 가정집 간 거리 합의 최솟값에 영향을 주지 않기 때문에, 전체 원소 중 \(N\)개 뽑는 경우의 수를 구해주는 조합을 사용했습니다. 문제 해결절차는 다음과 같이 크게 3단계입니다. 1️⃣ \(M\)개의 치킨 집 조합(combination) 구하기 2️⃣ 집마다 ..
📝 문제 https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 💡 접근법 BFS 알고리즘과 큐(Queue) 자료구조를 활용하여 문제를 해결하였습니다. 빨간 공과 파란 공의 좌표 정보와 보드를 기울인 횟수를 저장하는 큐가 빌 때까지 다음 작업을 반복합니다. 공이 움직일 수 있을 때까지 반복문을 활용하여 상하좌우 방향으로 움직이게 하며, 보드를 기울인 방향으로 공이 모두 움직였다면 큐에 공들의 좌표와 기..