전체 글 153

[백준 | 파이썬3] 2579. 계단오르기 - 동적계획법

https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net > 다이나믹 프로그래밍 아래 그림과 같은 규칙을 생각하면 풀 수 있었던 문제이다. 규칙을 코드로 작성하면 다음과 같다. + 계단의 개수가 하나인 경우에 if절을 넣어주지 않으면 dp[2]를 구하는 과정에서 인덱스 에러가 나기 때문에 if문을 통해 하나인 경우를 고려해주어야 한다.

[백준 | 파이썬3] 11650. 좌표 정렬하기- 정렬

https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net > 정렬 sort 메소드를 사용하고 파라미터인 key를 이용해 첫번째 정렬기준을 튜플에서 0번째 요소로, 두번째 정렬기준을 1번째 요소로 잡아주면 풀 수 있다. 또한 입력값을 받을 때 sys.stdin.readline을 사용해야 시간초과가 나오지 않는다.

Attention Is All You Need + Neural Machine Translation by Jointly Learning to Align and Translate

논문명: Attention Is All You Need 저자: Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia PolosukhinAshish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin 출간지: Conference on Neural Information Processing Systems (NIPS 2017) 발간일: 2017.12. 논문명: Neural Machine Translation by Join..

[백준 | 파이썬3] 11399. ATM- 그리디알고리즘

https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net > 그리디 알고리즘 각 사람이 기다리는 시간을 더할 때 작은 값부터 더하면 최종 합은 최솟값이 되므로 입력받은 시간 리스트를 정렬한 후 반복문을 사용해 합을 구하면 된다. time은 사람들이 각각 기다리는 시간이고 이를 최종 합인 result에 더해준다.

그레디언트와 경사하강법

밑바닥부터 시작하는 딥러닝을 교재로 한 딥러닝 I 강의 내용을 정리하고자 작성한 포스팅입니다. ▶ 모델 학습의 목표: 손실함수를 최소로 만드는 것이 목표로 정확도가 높은 모델을 만들기 위한 학습이 이뤄져야 한다. ▷ 손실함수를 최소로 만드는 것의 의미 손실함수를 최소로 만든다는 말은 손실함수의 변수(가중치와 편향)가 1차원일 때는 다음 그래프와 같이 기울기가 0인 지점에서 가장 최소값 _ 는 의미이다. 그러나 일반적으로 모델에서 변수를 하나만을 가지는 경우는 없다. 즉 적어도 2개의 변수, 2차원에서 손실함수의 최솟값을 찾아야한다. 손실함수가 2개의변수를 가진다고 할 때 최솟값은 다음과 같이 찾을 수 있다. 여기서 z는 접평면의 방정식으로 3차원에서 손실함수의 최솟값은 이 방정식을 상수 k로 만드는, 즉..

[백준 | 파이썬3] 1966. 프린터 큐- 큐

https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net > 큐 각 큐의 원소와 원소에 해당하는 순서를 함께 튜플로 묶어 큐에 추가함으로써 찾고자 하는 원소가 어디에 위치하는지 알 수 있도록 하는 것이 중요한 키포인트였다. 그리고 큐의 첫번째에 나와있는 튜플이 큐의 최댓값과 같다면 해당 튜플을 큐에서 빼주고 순서를 하나씩 증가시키면서 반복문을 진행하다가 찾고자 하는 원소가 나오면 반복문을 중단한다. 해당 원소가 몇번째에 큐에서 나오게됐는지를 알려주는 순서를..

[백준 | 파이썬3] 1904.01타일-동적계획법

https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net > 동적계획법 문제의 원리만 깨우치면 코드 작성은 그렇게 복잡하지 않은 문제였다. 4개의 타일로 만들 수 있는 모든 가짓수를 세려본다고 할 때 우리는 다음 그림과 같이 바로 이전 3개 타일의 경우의 수에 1을 붙이는 경우와 그 이전 2개 타일의 경우의 수에 00을 붙이는 경우를 생각해볼 수 있다. 단 숫자를 추가할 땐 뒤쪽에만 숫자를 붙여야 중복되는 수가 나오지 않는다는 것을 기억하자. 결과적으로 4개..

심층 신경망 성능 향상시키기(3)/하이퍼파라미터 튜닝

부스트 코스의 딥러닝 2단계: 심층 신경망 성능 향상시키기 강의를 수강하며 내용정리한 포스팅입니다. ▶ 하이퍼파라미터 신경망을 학습할때 튜닝해야하는 하이퍼파라미터는 학습률, 모멘텀, 아담 최적화알고리즘의 ε과 β1, β2, 층 수, 은닉 유닛 숫자, 학습률 감쇠(learning rate decay), 미니 배치 사이즈 등 무척 많다. 직관에 따라 하이퍼파라미터 튜닝의 중요도를 순서대로 정리하면 다음과 같다. 1순위: 학습률 2순위: 모멘텀, 미니배치 사이즈, 은닉 유닛 수 3순위: 층 수, 학습률 감쇠 (아담 알고리즘의 ε은 10^-8, β1은 0.9, β2는 0.999를 항상 사용하지만 원한다면 튜닝해도 좋다.) ▶ 딥러닝에서의 하이퍼파라미터 튜닝 하이퍼파라미터의 수가 적을 때는 그리드 서치를 통해 최..

[백준 | 파이썬3] 11866. 요세푸스 문제 0 - 큐

https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net > 큐 활용 다음 그림은 문제에 나와있는 예시를 대상으로 생각한 아이디어를 그려본 것이다. 1번에서 k-1번, 즉 시작 번호에서 두 번 이동해야하는데 이동하면서 거쳐가는 숫자들은 모두 뒤로 빼준다(

RNN과 게이팅

파이토치로 배우는 자연어처리 책을 참고하여 작성했습니다. ▶ 엘만 RNN의 문제점 엘만 RNN은 그림1과 같이 이전 셀에서의 은닉벡터와 현재 셀의 입력 벡터를 사용해 타임스텝마다 은닉상태 벡터를 계산하는 과정을 가진다. 따라서 RNN은 이전 정보를 현재에도 반영함으로써 자연어처리에서 시퀀스 데이터인 언어를 이해하는데 유용하게 사용될 수 있다. 그러나 RNN은 다음과 같은 문제점들을 가진다. 1. 현재 타임스텝에서 멀리 떨어져 있는 정보를 유지하기 어렵다. : RNN에선 시퀀스에 있는 모든 입력벡터를 모델에 넣는다. 즉 모델 학습에 유익한 정보이든 아니든 간에 무조건 다 입력으로 넣고본다. 이런 경우 모델이 주어진 task를 수행하는데 쓸모없는 데이터들의 정보까지 반영되기 때문에 비효율적인 학습이 될 수 ..