본문 바로가기
728x90
반응형

코딩

알고리즘 - Python / 백준 - 17404번 : RGB거리 2 17404번: RGB거리 2 (acmicpc.net) 17404번: RGB거리 2 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 풀이 RGB 거리 1 문제에 1번째 집과 마지막 집의 색이 다르게 해야 한다는 조건만 추가된 문제다. RGB 문제 역시 점화식을 통해 DP로 해결가능한 문제이므로 DP로 접근해 문제를 풀었다. RGP 거리 1 문제와 다른점은 선택 가능한 마지막 집이 첫 번째 집과 색이 겹치지 않아야 한다는 것이다. 따라서 DP 배열을 3개 만들어 첫번째 집이 R , G , B 인 경우로 두고 모두 .. 더보기
[13] Deep Learning - Gradient clipping [13] Deep Learning - Gradient clipping Gradient clipping Gradient clipping 이란 , 경사 폭주 문제를 해결하는 한 가지 방법이다. Gradient clipping은 Backpropagation 과정에서 경사값이 특정 임계값을 넘으면 그 이상의 경사 값을 잘라내는 것을 의미한다. 대부분의 Network 구조에서는 배치 정규화 만을 사용해도 충분하지만 , Network의 구조에 따라 배치 정규화를 사용하기 어려운 경우들이 존재한다. 그런 경우 Gradient clipping을 통해 경사 폭주 문제를 해결할 수 있다. [12] Deep Learning - Batch normalization [12] Deep Learning - Batch normali.. 더보기
[12] Deep Learning - Batch normalization [12] Deep Learning - Batch normalization Batch normalization 이전 글에서는 경사 소실 문제와 폭주 문제를 해결하기 위한 activation function들과 initialization 방법들을 살펴보았다. [11] Deep Learning - Initialization & Activation function (tistory.com) [11] Deep Learning - Initialization & Activation function [11] Deep Learning - Initialization & Activation function 복잡한 문제를 해결해야 할수록 , Network는 점점 더 복잡하고 깊어져야 할 것이다. Network가 점점 더 깊어지.. 더보기
알고리즘 - Python / 백준 - 11049번 : 행렬 곱셈 순서 11049번: 행렬 곱셈 순서 (acmicpc.net) 11049번: 행렬 곱셈 순서 첫째 줄에 입력으로 주어진 행렬을 곱하는데 필요한 곱셈 연산의 최솟값을 출력한다. 정답은 231-1 보다 작거나 같은 자연수이다. 또한, 최악의 순서로 연산해도 연산 횟수가 231-1보다 작거나 같 www.acmicpc.net 풀이 DP 문제 중 유명한 문제인 행렬 곱셈 순서 문제다. 행렬의 곱셈 순서 문제를 작은 문제 단위로 나누었을 때 , 이전 단계의 문제가 다음 문제를 푸는데 도움을 준다. 따라서 DP를 사용해 풀 수 있다. 예를 들어 M1 * M2 * M3 * M4의 경우 M1 * M2 / M2 * M3 / M3 * M4 곱을 먼저 구하였다면 , 이후 M1 * M2 * M3 / M2 * M3 * M4의 경우에도 .. 더보기
[11] Deep Learning - Initialization & Activation function [11] Deep Learning - Initialization & Activation function 복잡한 문제를 해결해야 할수록 , Network는 점점 더 복잡하고 깊어져야 할 것이다. Network가 점점 더 깊어지고 복잡해 짐에 따라 다양한 문제들이 발생하였다. 기울기 소실(Gradient Vanishing), 기울기 폭주(Gradient Exploding) 거대한 DNN을 만드는 데 사용되는 Data 부족 ( Train data 부족 혹은 label이 없는 데이터를 사용할 경우 ) 깊어지고 복잡한 Network 때문에 극단적으로 길어지는 훈련시간 다수의 parameter들로 인해 Overfitting의 위험성 ( 특히 Train data set이 적을 때 ) Gradient Vanishing.. 더보기
[10] Deep Learning - Hyper Parameter Tuning [9] Deep Learning - Hyper Parameter Tuning Hyper Parameter 모델을 만들고 학습시킬 때 , 다양한 부분에서 hyper parameter를 선택해야 한다. hyper parameter 들의 예시로는 뉴런의 개수 , hidden layer의 개수 , 학습률 등 다양하게 존재한다. 이러한 hyper parameter들의 조합의 가짓수는 선택해야 할 parameter가 추가될 때마다 빠른 속도로 커질 것이다. 최적의 hyper parameter 조합을 찾는다는 것은 hyper parameter들로 이루어진 공간을 탐색해야 한다는 것과 같다. 이러한 부분에 있어서 최적화 기법을 사용할 수 있고 hyper parameter를 tuning 할 수 있다. 다음은 hyper .. 더보기
알고리즘 - Python / 백준 - 1011번 : Fly me to the Alpha Centauri 1011번: Fly me to the Alpha Centauri (acmicpc.net) 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 풀이 어느 구간을 우주선이 이동한다고 가정할 때 , 움직일 수 있는 거리는 이전 움직인 거리에 +1 , +0 , -1 한 경우이다. 출발과 도착 구간을 1만큼 움직이며 , 가장 적게 움직이는 횟수를 구하는 문제다. 어느 구간을 최소 횟수로 도달하는 가장 직관적인 방법은 1 , 2 , 3... k , k-1 , k-2... 2 , .. 더보기
[9] Deep Learning - Keras Functional API [9] Deep Learning - Keras Functional API 지난 글에서는 Keras의 sequential API를 통해 이미지 분류 문제를 살펴보았다. [8] Deep Learning - Perceptron (tistory.com) [8] Deep Learning - Perceptron [8] Deep Learning - Perceptron Perceptron Perceptron은 가장 간단한 인공 신경망의 일종으로 TLU를 기반으로 구성된다. TLU는 위의 그림과 같이 입력에 대해 가중치를 적용한 후 , 이를 모두 더해 계단 함.. ddggblog.tistory.com 이번에는 순차적이지 않은 구조를 만들기 위해 Keras의 Functional API를 살펴본다. 순차적이지 않은 네트워크.. 더보기
반응형