본문 바로가기

Every

(139)
NLP Load : 맨땅에 헤딩하는 NLP 공부일지 (12) 워드임베딩까지 공부했으니 NLP의 가장 기본이 되는 모델을 알아보도록 하자. 바로 RNN(Recurrent Neural Network)이다. 우리는 인공 신경망을 행렬과 벡터 연산으로 이해할 수 있다면 더 이해하기 용이하다는 것을 이미 알고있다. Ⅰ. RNN (Recurrent Neural Network) 요 신경망은 연속적인 시퀀스를 처리하기 위한 신경망이다. 사람은 글을 읽을 때, 이전 단어들에 대한 이해를 바탕으로 다음 단어를 이해하게 된다. 즉, 우리가 소통하는데 사용하는 언어(Language)는 시퀀스적인 데이터라는 말이다. 기존의 MLP에 비해 RNN은 이러한 이슈를 다루며, 내부에 정보를 지속하기 위해 루프과정을 통해 구성한다. RNN은 입력의 길이만큼 신경망이 펼쳐진다(=unrolled)...
Programmers Lv.1 "최소직사각형" 문제를 잘 읽어보면 주어진 가로길이의 최댓값, 세로길이의 최댓값을 선택하는 단순한 문제가 아님을 알 수 있다. 즉, 각 명함의 크기가 가로, 세로의 전환도 고려해야한다는 것. 가장 심플한 해결방법은 주어진 sizes를 반복을 하되 큰값을 가로와 세로 중 어디로 할 것인지 임의로 정한뒤 순차적으로 비교하여 최대의 수치를 저장해주면 된다. 아래 코드를 보면 이해가 될 것이다. def solution(sizes): w = 0 h = 0 for element in sizes: if element[0] > element[1]: element[0], element[1] = element[1], element[0] if element[0]>w: w = element[0] if element[1]>h: h = elem..
Programmers Lv.1 "시저 암호" 시저암호를 만드는 알고리즘은 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 말하는데 알파벳의 순서를 일정거리만큼 밀어서 대응시키는것이 중점이다. 다만, 맨 마지막 알파벳은 맨 처음 알파벳과 이어지는것을 유의해서 구하면 되는데, 필자는 아스키 코드값을 기억하고 있기에 (A가 65, a가 97이다.) 이 테이블을 이용하여 알고리즘을 구현했다. def solution(s, n): answer = '' for i in list(s): if i != " ": if i.isupper() : answer += chr(ord(i)+n) if ord(i)+n < 91 else chr(ord(i)-26+n) elif i.islower() : answer += chr(ord(i)+n) if ord..
진법 변환 (Base Conversion) 진법이란 무엇일까요? 진법이란 수를 표기하는 기수법의 하나로 몇 개의 기본 숫자를 이용하여 수를 표시하는 방법이다. 자리값이 올라감에 따라 수가 일정하게 커지는 규칙을 이용하고 수를 표시한다. 아라비아 숫자에 해당하는 1~9까지의 숫자를 사용하여 수를 나타내는 방식을 10진법이라고 하고 프로그래밍 영역에서는 2진법, 8진법, 16진법이 존재한다. 모든 진법은 숫자의 위치에 따라 가중치가 달라진다. 아래 그림을 보자. 예를들어 `12345 = (1 \times 10^4)+(2 \times 10^3)+(3 \times 10^2)+(4 \times 10^1)+(5 \times 10^0)`와 같은것이다. 주의깊게 봐야하는 부분은 각 진법간의 변환인데, 차례대로 알아보자. 10진수를 `N`진수로 변환하는 방식을 ..
약수의 개수와 최대공약수, 최소공배수 (Count of Divisor & GCD, LCM) 수론에서 약수(=divisor) 혹은 인수(=factor)는 어떤 수를 나누어떨어지게 하는 수를 말한다. 두 정수 `a,\;b`에 대하여 `b=ac`를 만족하는 정수 `c`가 존재한다면 `a`를 `b`의 약수라고 말하고 `a|b`로 표기한다. 모든 정수는 1과 -1을 약수로 가진다. 또한 모든 정수는 자기자신과 그 반수(더했을 때 0이 되는 수)를 약수로 가진다. 예시를 들면 이렇다. 12의 모든 양의 약수는 1,2,3,4,6,12이다. 약수는 음수일 수 있으며, 12의 모든 음의 약수는 -1, -2, -3, -4, -6, -12이다. 이제는 성질을 알아보자. 약수를 논할때 빠질 수 없는것이 바로 배수와의 관계이고, 가장 빈번하게 등장하는 개념이 최대공약수와 최소공배수일 것이다. 요거까지 정리해보자. 우..