전체 글

(1) Why Sequence Models? Examples of sequence data Sequence data 역시 입력 x, 출력 y의 구조는 동일합니다. 이때 x는 반드시 sequence일 필요는 없습니다. nothing, 아무것도 아닐 수 있고 때로는 integer(정수)일수도 있습니다. (2) Notation Motivating example 위와 같은 문장이 입력으로 주어졌을 때 각 단어로 쪼개어서 구분합니다. 한 입력 내에서 몇 번 째의 위치인지 구분하는 것은 기호를 사용하고, 전체 예시 중에서 몇 번째에 해당하는지는 ( ) 기호를 사용합니다. 위 문장에서 이름을 나타내는 단어에 해당하면 1, 그렇지 않으면 0을 정답(label, y)으로 부여합니다. Representing wor..
문제 링크 https://www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 소스 코드 def main(): formula = list(input()) stack = [] # 연산자, 괄호가 담길 스택 answer = '' for tmp in formula: if tmp.isalpha(): # 문자는 바로 정답 문자열에 추가 answer += tmp elif tmp == '(': # 여는 괄호는 스택에 추가 stack.append(tmp) elif tmp =..
Java collections library java의 collections라는 라이브러리엔 유용한 툴들이 많이 들어있습니다. python에도 같은 이름의 라이브러리가 있어서 코딩테스트 문제를 풀이할 때 종종 사용됩니다. War story (from Assignment 1) 과제 1이었던 percolation 문제를 예로 들어서 라이브러리 사용에 충분한 이해가 전제되어야 함을 강조하고 있습니다. n by n 사이즈의 문제를 다룰 때, 이를 배열로 풀이한 사람은 N^2 만큼의 시간이 소요됩니다. 반면 이를 linked list로 풀이하면 N^4의 시간, 즉 제곱만큼의 시간이 소요됩니다. 이는 linked list가 탐색을 수행할 때 배열의 길이 n에 비례하는 시간 복잡도를 가지기 때문입니다. 즉, 상수(c..
Iteration 실제로 어떤 작업이 이루어질 때 그 내부 구조에 대해서 사용자는 굳이 알 필요가 없습니다. 그래서 사용될 수 있는 Java의 좋은 기능 중 하나가 iterator라고 합니다. python에서도 iterable 객체에서 값을 하나씩 꺼낼 수 있는 iterator가 존재합니다. Stack iterator: linked-list / array implementation itertator의 구조를 자세히 살펴보고 있습니다. 호출이 될 때마다 current에 저장된 값이 다음 값으로 넘어가는 것을 알 수 있습니다. Bag API 강의가 너무 오래 전이라 그래서 어느 정도의 괴리가 존재하는지 모르겠네요.. python의 set 자료형을 말하는 것 같습니다. 이때 당시의 자바는 이걸 Bag이라는 A..
Parameterized stack 이 내용도 사실 파이썬과는 큰 차이가 있습니다. Java에서는 generic이라는 것이지만, 파이썬에서는 type hint를 지원하기 때문입니다. run time error를 지양하고 compile 단계에서 에러가 발생하도록 하는 장치라고 볼 수 있습니다. 어떤 프로그램이 곧 product라고 생각하면, 고객에게 전달된 뒤에 문제가 발생하는 것보다 내 손에 있을 때 발생하는 것이 낫겠죠. 그래서 사전에 정해진 일반적인 형태 등을 정해놓은 것이 generic, 그리고 파이썬에서는 type hint라고 이해하면 될 것 같습니다. Generic stack: linked-list implementation generic type name을 사용해서 기존의 코드를 개선한 예시입..
· 딥러닝
본 게시물은 NLP 분야에서 가장 많이 사용되는 모델 중 하나인 BERT를 기준으로 작성되었습니다. 드디어 혼자서 아주 간단한 프로젝트에 도전해 볼 기회가 주어져서 밑바닥부터 딥러닝 모델 구조를 짜보았습니다. 사실 다른 사람이 짜준 코드와 구조 내에서 일부만 변경하던 것에 비하면 너무너무 어렵다는 생각이 들었습니다 🤯 어찌보면 그만큼 복잡한 구조 내에서 작업했던게 신기하기도 했구요. 아마 저처럼 캐글이나 데이콘과 같은 경진대회에 처음 입문하는 사람은 주어진 베이스라인의 형태를 벗어나는 것 조차 어려운 일일 것입니다. 그래서 제가 캐글과 데이콘의 간단한 분류 프로젝트를 진행하면서 알게 된 내용들을 최대한 이해하기 쉽게 정리해보고자 합니다. 다른 것보다도 사전학습된 모델을 불러와서 내가 원하는대로 커스텀하는..
chanmuzi
chanmuzi