Collections
Machine Learning
토막글
Machine Learning/토막글
Feed Forward (Neural) Network vs. Fully Connected Network
Date Created2022-01-27
Date Modified2022-07-09
참고 https://stackoverflow.com/questions/45933670/whats-the-difference-between-feed-forward-network-and-fully-connected-networ Feed Forward (Neural) Network, 줄여서 FFNN이라 불리는 신경망과, Fully Connected (Neural...
Machine Learning/토막글
Padded Sequence vs. Packed Sequence
Date Created2022-11-24
Date Modified2022-12-07
문제상황 자연어와 같은 sequence 데이터들을 다루다 보면 짜증나는 요소가 하나 있는데, 바로 그 길이가 일정하지 않다는 것이다. 이미지 데이터의 경우 crop이나 resize 등으로 가로 세로 크기를 맞추고 진행하기에 모든 데이터들을 하나의 batch로 예쁘게 묶을 수 있다. 하지만 sequence 데이터는 길이가 다양해 하나의 batch로 묶기 ...
Machine Learning/토막글
Positional Encoding vs. Positional Embedding
Date Created2022-01-28
Date Modified2022-11-13
전통적으로, 자연어로 된 문장을 조작해야 하는 NLP 영역에서는 연속적인(sequential) 데이터를 자연스럽게 입력으로 받아들일 수 있는 RNN 기반 모델이 많이 사용되어 왔다. 예를 들어, 문장 "John loves Susan"과 "Susan loves John"은 같은 단어들로 구성되어 있지만, 그 단어들의 위치(순서)가 달라 서로 다른 문장이다. ...
Machine Learning/토막글
[pytorch] Dataset, DataLoader
Date Created2022-05-22
Date Modified2022-05-22
pytorch는 모델로의 데이터 입력을 편하게 할 수 있도록 위해 torch.utils.data.Dataset 클래스(이하 Dataset)와 torch.utils.data.DataLoader 클래스(이하 DataLoader)를 제공한다. Dataset : 데이터 셋의 각 샘플들에 전처리 등의 작업을 수행해 하나씩 가져오는 역할을 한다. DataLoader ...
Machine Learning/토막글
[pytorch] 두 텐서 간 교집합(Intersection) 구하기
Date Created2020-08-21
Date Modified2022-01-28
다음과 같이 1차원 텐서 a, b가 주어졌다고 해 보자. pythonimport torch a = torch.LongTensor([1, 2, 3]) b = torch.LongTensor([2, 3, 1, 5]) 두 텐서 간 공통된 원소를 추출하려면(교집합) 어떻게 하면 될까? Method 1 : NumPy의 np.intersect1d() 메소드 이용 N...
Machine Learning/토막글
[scikit-learn] pip install sklearn vs. scikit-learn
Date Created2022-05-24
Date Modified2022-05-24
사이킷런은 다음과 같이 pip을 이용해 간단하게 설치할 수 있다. bashpip install scikit-learn 그런데 다음 명령어로도 사이킷런을 설치할 수 있다. bashpip install sklearn 두 방법의 차이는 무엇일까? pip install sklearn vs. scikit-learn 결론부터 말하자면, pip install sci...
Machine Learning/토막글
파라미터(Parameter) vs. 하이퍼파라미터(Hyperparameter)
Date Created2020-05-07
Date Modified2022-01-28
파라미터(Parameter)와 하이퍼파라미터(Hyperparameter)는 일견 비슷한 이름으로 헷갈리게 느껴질 수 있다. 파라미터와 하이퍼파라미터 모두 매개변수(parameter)이지만, 커다란 차이가 있다. 파라미터 (Parameter) 파라미터는 모델 내부에 존재하는 매개변수이다. 파라미터는 학습의 대상으로, 학습 알고리즘을 통해 자동적으로 학습하...
Reinforcement Learning
Machine Learning/Reinforcement Learning
L01. Overview
Date Created2021-03-02
Date Modified2024-05-12
2021-1학기 서울대 강화학습(M3309.000200) 강의 노트 도서 <Reinforcement Learning: An Introduction (2nd Edition)> by Richard S. Sutton and Andrew G. Barto 내용을 정리함 강화학습이란? 일반적으로 기계학습은 지도학습(Supervised Learning)과...
Machine Learning/Reinforcement Learning
L02. Introduction
Date Created2021-03-04
Date Modified2024-05-12
강화학습(RL, Reinforcement Learning)이란? 강아지에게 "앉아!"를 훈련시키는 과정을 생각해 보자. 강아지에게 "앉아!"라 말한다. 처음에는 "앉아!"라는 말을 들어도 제 멋대로 행동할 것이다. 그래도 강아지에게 계속 "앉아!"라 말한다. 그러다 어느 순간 우연히 강아지가 앉으면 간식 등을 줘 이를 칭찬한다. 강아지는 (간식을 더 받...
Machine Learning/Reinforcement Learning
L03. Multi-armed Bandits
Date Created2021-03-15
Date Modified2024-05-12
k-armed Bandit Problem 다음 문제를 생각해 보자. 철수는 미국 여행 중 라스베가스 공항을 경유하게 되었다. 다음 비행기는 2시간 후 출발할 예정이라, 철수는 그동안 라스베가스 공항의 명물, 슬롯머신을 당겨 보기로 했다. 다행히 공항에 사람이 별로 없어서 철수는 10대의 슬롯머신을 독점적으로 사용할 수 있다. 각 슬롯머신에서 돈을 딸 확...
Machine Learning/Reinforcement Learning
L04. Markov Decision Process
Date Created2021-03-26
Date Modified2024-05-12
에이전트와 환경의 관계 이전 글에서 보았던 k-armed Bandit Problem의 경우 에이전트가 행동을 할 때마다 보상이 발생했다. 그러나 그 과정에서 에이전트를 둘러싸고 있는 환경(environment)의 상태(state)가 변하지는 않았다. 하지만 일반적인 RL 문제의 경우 에이전트가 행동을 수행하면 보상이 발생할 뿐만 아니라 환경의 상태가 변...
Machine Learning/Reinforcement Learning
L05. Dynamic Programming
Date Created2021-04-08
Date Modified2024-05-12
DP(Dynamic Programming)란? 알고리즘을 공부해 보았다면 DP(Dynamic Programming, 동적 계획법)에 대해 들어보았을 것이다. 알고리즘에서의 DP는 다음 두 가지 속성을 가지고 있는 문제에 적용 가능한 풀이 방법이다. Overlapping Subproblem : 문제는 여러 개의 하위 문제(subproblem)으로 쪼갤 수...
Machine Learning/Reinforcement Learning
L06. Monte Carlo Methods
Date Created2021-04-13
Date Modified2024-05-12
MC Method(Monte Carlo Method)란? 이전 글에서 우리는 DP에 대해 배웠다. DP의 핵심 아이디어 중 하나는 GPI이다. GPI란 현재 정책으로부터 가치 함수를 계산하는 Evaluation 과정과 현재 가치 함수로부터 개선된 정책을 계산하는 Improvement 과정을 번갈아가며 진행해 최적 정책과 최적 가치 함수를 찾는 방법을 말...
Machine Learning/Reinforcement Learning
L07. TD Learning
Date Created2021-04-28
Date Modified2024-05-12
TD Method란? 이전 글에서 살펴보았던 MC Method를 이용하면 환경에 대한 지식 없이도 경험만으로 최적 가치 함수 및 최적 정책을 찾을 수 있었다. 예를 들어 Nonstationary한 환경에서 every-visit MC Method를 사용하는 상황을 생각해 보자. 시간 에서, 적절한 상수 에 대해 가치 함수 는 실제로 관측된 Sample R...
Machine Learning/Reinforcement Learning
L08. n-step Bootstrapping
Date Created2021-06-06
Date Modified2024-05-12
-step TD Method란? 다음과 같은 에피소드를 관측했다고 해 보자. , , , , , , , , …, , [종료] 이때 상태 의 가치 함수 를 업데이트하는 방법을 생각해 보자. MC Method에서는 시점 부터 에피소드 종료까지 관측한 (전체) 보상들(, , …, )을 기반으로 하여 를 업데이트했다. (단, ) 한편, 1-step TD Meth...
Machine Learning/Reinforcement Learning
L09. Planning and Learning with Tabular Methods
Date Created2021-06-21
Date Modified2024-05-12
모델(Model) 모델(Model) 은 상태(state)와 행동(action)을 입력으로 받아 다음 상태와 보상(reward)을 출력하는 일종의 함수다. 에이전트(agent)는 특정 상태에서 환경(environment)이 특정 행동에 어떻게 반응할 지 예측하기 위해 모델을 사용한다. 모델은 크게 두 종류로 구분할 수 있다. Distribution Mod...
Natural Language Processing
Machine Learning/Natural Language Processing
Huggingface BERT 톺아보기
Date Created2022-07-23
Date Modified2022-09-02
오늘날 우리는 transformer의 시대에 살고 있다고 말해도 과언이 아니다. transformer 기반 모델들은 거의 대부분의 NLP task들에서 sota를 달성하고 있다. transformer 시대의 서막을 연 것은 BERT였다. BERT가 처음 등장했을 때는 이를 가져다 쓰기 위해선 상당한 실력이 요구되었으나, Huggingface 라이브러리가 등...
어텐션 메커니즘
Machine Learning/Natural Language Processing/어텐션 메커니즘
서론
Date Created2024-05-16
Date Modified2024-05-16
오늘날 우리는 트랜스포머(transformer)의 시대에 살고 있다고 말해도 과언이 아니다. 트랜스포머 기반 모델들은 대부분의 NLP task에서 SOTA를 달성하고 있다. 트랜스포머 모델의 핵심은 바로 어텐션(attention) 메커니즘에 있다. 본 시리즈에서는 어텐션 메커니즘에 대해 자세히 알아보겠다.
Machine Learning/Natural Language Processing/어텐션 메커니즘
Seq2Seq 모델
Date Created2024-05-18
Date Modified2024-05-19
참고 [2014] Sequence to Sequence Learning with Neural Networks 어텐션 메커니즘은 본래 Seq2Seq 모델을 개선하기 위해 제안된 메커니즘이다. 어텐션 메커니즘을 잘 이해하려면 Seq2Seq 모델을 이해해야 한다. Seq2Seq 모델 Seq2Seq 모델은 번역, 요약과 같이 시퀸스(sequence)를 입력받아...
Machine Learning/Natural Language Processing/어텐션 메커니즘
어텐션 메커니즘 (Attention Mechanism)
Date Created2024-05-19
Date Modified2024-05-19
어텐션 메커니즘 (Attention Mechanism) 참고 [2015] Neural Machine Translation by Jointly Learning to Align and Translate 어텐션 메커니즘은 Seq2Seq 모델의 문제점을 개선하기 위해 제안되었다. 어텐션 메커니즘의 아이디어는 고정된 크기의 벡터(컨텍스트 벡터) 하나에 입력 시퀸...
Machine Learning/Natural Language Processing/어텐션 메커니즘
트랜스포머 (Transformer)
Date Created2024-05-19
Date Modified2024-05-19
참고 [2017] Attention Is All You Need 트랜스포머(Transformer) 모델 트랜스포머 모델은 Seq2Seq 모델, 어텐션 이후 NLP 분야에서 나온 또 하나의 큰 도약이다. 트랜스포머 모델의 아이디어는 Seq2Seq + 어텐션 모델에서 RNN 구조를 제거하는 것이다. 즉 RNN을 사용하지 않고 오직 어텐션 연산(과 FC 연산...
Math
Linear Algebra
Math/Linear Algebra
벡터와 행렬
Date Created2021-09-13
Date Modified2024-09-21
벡터(vector)란? 여러 개의 값(또는 수식)을 하나의 순서 있는 덩어리(ordered list)로 묶어놓은 것. -tuple 벡터, 혹은 그냥 줄여서 -벡터라 하면 다음처럼 개의 값들을 묶어놓은 벡터를 의미한다. 벡터는 일반적으로 위와 같이 세로 형태로 표현하지만, 표기의 편의를 위해 다음과 같이 가로 형태로 쓰기도 한다(가로로 작성되어 있어도 위...
Math/Linear Algebra
선형연립방정식 (Linear System)
Date Created2021-09-16
Date Modified2024-09-21
선형연립방정식(linear system)이란? 변수 , , ..., 에 대해 다음과 같은 형태로 기술되는 식을 선형방정식(linear equation) 이라 한다. 이때 , , ..., 을 계수(coefficient) 라 부른다. 같은 변수를 공유하는 하나 이상의 선형방정식들의 모임을 선형연립방정식(system of linear equation, lin...
Math/Linear Algebra
Echelon Form
Date Created2021-09-20
Date Modified2024-09-21
elementary row operation 행렬에 대한 다음 세 가지 조작을 elementary row operation이라 한다. replacement : 특정 행을 자기 자신과 다른 행의 배수 배를 합한 것으로 교체한다. interchange : 두 행의 위치를 바꾼다. scaling : 특정 행에 0이 아닌 상수를 곱한다. elementary r...
Math/Linear Algebra
Linear Combination
Date Created2021-09-20
Date Modified2024-09-21
linear combination 벡터 , 와 적당한 에 대해 다음이 성립한다면, 벡터 는 벡터 들의 linear combination이라 부른다. 그리고 를 가중치(weight) 라 부른다. span 벡터 가 주어졌을 때, 이들 벡터들의 linear combination으로 만들 수 있는 모든 벡터들의 집합을 이라 쓰고, "에 의해 span된 집합...
Math/Linear Algebra
선형변환 (Linear Transformation)
Date Created2021-09-26
Date Modified2024-09-21
변환(transformation)이란? 집합 에서 집합 으로의 변환(transformation) 는 안의 벡터 를 안의 벡터 로 배정하는 규칙을 의미한다. 이를 기호로 나타내면 다음과 같다. 변환은 함수(function), mapping 등으로도 불린다. 집합 은 정의역(domain) 이라 부른다. 집합 은 변환 의 공역(codomain) 이라 부른다....
Math/Linear Algebra
역행렬 (Inverse)
Date Created2021-09-26
Date Modified2024-09-21
역행렬(inverse)이란? 정사각행렬 에 대해, 다음을 만족하는 정사각행렬 가 존재한다면, 행렬 는 역행렬이 존재한다(invertible), 또는 non-singular하다고 한다(반대로, 역행렬이 존재하지 않는 행렬은 singular하다고 한다). 그리고 행렬 를 행렬 의 역행렬(inverse) 이라 하고 기호로 다음과 같이 나타낸다. 행렬의 역행렬...
Math/Linear Algebra
Matrix Factorization
Date Created2021-09-27
Date Modified2024-09-21
matrix factorization이란? 주어진 행렬을 둘 이상의 행렬의 곱으로 나타내는 것을 matrix factorization 혹은 matrix decomposition이라 한다. 쉽게 생각해, (대수학에서의) 인수분해의 선형대수 버전이 matrix factorization이라 생각하면 된다. matrix factorization과 행렬곱(mat...
Math/Linear Algebra
벡터공간 (Vector Space)
Date Created2021-09-28
Date Modified2024-09-21
벡터공간(vector space) 벡터공간(vector space) 란 집합의 임의의 원소 과 임의의 실수 에 대해 다음 10가지 공리(axiom)를 만족하는 집합을 말한다. 덧셈(addition)에 대해 닫혀있다. 즉, 임의의 두 원소 에 대해, 두 원소의 덧셈 도 의 원소이다. 을 성립시키는 라는 원소가 존재한다. 이때, 을 영벡터(zero vect...
Math/Linear Algebra
판별식 (Determinant)
Date Created2021-10-14
Date Modified2024-09-21
판별식(determinant)이란? 행렬 가 주어졌다고 해 보자(단, ). 이때, 를 에서 행과 열을 제거하고 만들어지는 행렬이라 하자. 그리고 의 (, )-cofactor 를 다음과 같이 정의하자. 일 때, 의 판별식(determinant) 는 다음과 같이 정의된다. 일 때(= 원소가 하나만 있을 때), 행렬 의 판별식 은 그 유일한 원소의 값으로 정...
Math/Linear Algebra
Eigenvector, Eigenvalue
Date Created2021-10-20
Date Modified2024-09-21
eigenvector, eigenvalue 행렬 에 대해, 선형연립방정식 이 nontrivial solution을 갖게 만드는 스칼라 를 의 eigenvalue라 한다. 그리고 그 때의 nontrivial solution 를 와 상응하는 의 eigenvector(eigenvector of corresponding to )라 한다. 선형변환 에 대해, e...
Math/Linear Algebra
Orthogonality
Date Created2021-10-31
Date Modified2024-09-21
orthogonality 두 벡터 , 에 대해, 두 벡터의 내적 이라면, 와 는 서로 orthogonal하다고 한다. 영벡터는 모든 벡터들과 orthogonal하다. 두 벡터 , 에 대해, 와 의 Norm 사이에 다음 식이 성립하면 와 는 서로 orthogonal하다. 역으로, 와 가 서로 orthogonal하면 위 식이 성립한다. 즉, 두 벡터 , 에...
Math/Linear Algebra
Symmetric Matrix
Date Created2021-09-15
Date Modified2024-09-21
symmetric matrix 인 정사각행렬 를 symmetric하다고 한다. 인 정사각행렬 를 anti-symmetric하다고 한다. 모든 symmetric matrix들의 집합을 이라 표기한다. 행렬 에 대해, 이므로, 는 항상 symmetric matrix이다. 참고로 이런 꼴의 행렬을 Gram matrix라고 한다. 임의의 정사각행렬 가 있을 때...
Python
Python
f-string (formatted string literals)
Date Created2024-11-09
Date Modified2024-11-09
f-string(formatted string literal)이란? 파이썬에서는 단일 따옴표(" 또는 ') 또는 삼중 따옴표(""" 또는 ''')를 사용해 문자열(string literal)을 표현할 수 있다. 파이썬 3.6 이상부터는 이 문자열 앞에 f 또는 F를 붙여 f-string을 만들 수 있다. f-string을 이용하면 문자열 보간(strin...
Python
반복문에서의 else
Date Created2024-11-27
Date Modified2024-11-27
사용하지 않는 것이 좋음 이 기능은 코드의 가독성을 떨어뜨리므로 되도록 사용하지 않는 것이 좋다. 반복문에서의 else 파이썬에서는 반복문 뒤에 else 블록을 사용할 수 있다. else 블록은 반복문이 중간에 break나 raise 따위로 끊기지 않고 끝까지 실행되었을 때 실행된다. pythonfor i in range(3): print(i) else...