일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Binary Search Proof
- ChatGPT 설명
- 선택정렬
- 이진탐색 증명
- 이진탐색
- binary search
- Discrete Wavelet Transform
- 선택정렬 증명
- GPT-3
- chatGPT
- haar matrix
- BERT
- Selection Sort
- Proof Selection Sort
- Today
- Total
목록분류 전체보기 (42)
Just Do IT
1. 균등분포 생성기 가장 먼저 직관적으로 쉽게 생각할 수 있는 확률분포는 균등분포입니다. 파이썬의 균등분포 생성기는 메르센 트위스터 알고리즘을 통해 만들어집니다. 메르센 트위스터 알고리즘은 주기가 $ 2^{19937} - 1 $로 반복되기 때문에 정확히는 유사 난수 생성기에 속합니다. 나온 값을 주기로 나누어 0부터 1까지의 float을 출력할 수 있습니다. https://datascienceschool.net/03%20machine%20learning/19.01%20%EB%AA%AC%ED%85%8C%EC%B9%B4%EB%A5%BC%EB%A1%9C%20%EB%B2%A0%EC%9D%B4%EC%A7%80%EC%95%88%20%EB%B6%84%EC%84%9D.html 몬테카를로 베이지안 분석 — 데이터 사이..
들어가며 이번 포스팅에서는 흔히 Vanilla GAN 혹은 Simple GAN이라고 불리는 가장 기본적인, 논문에서 제시한 알고리즘을 바탕으로 구현을 해볼 예정입니다. 가장 심플한 GAN이기 때문에 하이퍼 파라미터에 따라, 초기 noise에 따라 학습이 잘 안되기도 하고 나름 잘되기도 합니다. Pytorch lightning을 이용해서 구현해보도록 하겠습니다. Pytorch lightning은 Pytorch 프레임워크를 베이스로 보일러 플레이트를 최대한 제거하고 공통된 스타일의 템플릿을 제공해주는 역할을 합니다. 보일러 플레이트란?https://charlezz.medium.com/%EB%B3%B4%EC%9D%BC%EB%9F%AC%ED%94%8C%EB%A0%88%EC%9D%B4%ED%8A%B8-%EC%BD..
들어가며 상당수의 부분을 Time Travler님의 https://89douner.tistory.com/329 글에서 참고했습니다. 논문에 대해 굉장히 깊은 수준으로 다루십니다. 5-1. GAN (Part1. GAN architecture) 안녕하세요. 이번 글에서는 최초의 GAN 논문인 "Generative Adversarial Nets"을 리뷰하려고 합니다. 우선, GAN이라는 모델이 설명할 내용이 많다고 판단하여 파트를 두 개로 나누었습니다. Part1에서는 GAN a 89douner.tistory.com Intractable Problem 전에 논문 리뷰를 진행할 때 difficulty of approximating many intractable probabilistic computations를 ..
들어가며 AI학문의 대부 Yoshua Bengio의 제자인 Ian Goodfellow가 만들어낸 정말 기발한 아이디어가 녹아있는 논문이다. 처음 GAN의 아이디어를 들었을 때 '어떻게 이런 생각을 할 수 있었을까'라는 생각이 들 정도로 충격을 받았던 기억이 있다. GAN은 논문이 처음나온 2014년부터 지금까지 꾸준히 연구되고 성장하는 분야로 noise로 시작해서 새로운 이미지를 '생성' 해내는 창의적인 모델이다. 먼저 이 글에서는 GAN의 기본 개념을 rough하게 다뤄보려고 한다. VAE와의 차이, KL divergence와 JS divergence 등등 수학적인 이론은 따로 다룰 예정이다. 0. Abstract 이 논문에서는 동시에 두가지 모델을 train하는 방법론을 제시한다. 그 모델은 data..
Selection Sort Selection Sort은 가장 기본적인 정렬 알고리즘 중 하나이다. 알고리즘의 진행 순서는 다음과 같다. 주어진 리스트에서 최소값을 찾는다. 그 값을 맨 앞의 값과 교체한다. 맨 처음위치를 뺀 나머지 리스트에 대하여 반복한다. 그림으로 보는게 가장 이해가 잘 될 것같다. 테이블로 보면 다음과 같다. Round Array Min Value 0 [9,1,6,8,4,3,2,0] 0 1 [0,1,6,8,4,3,2,9] 1 2 [0,1,6,8,4,3,2,9] 2 3 [0,1,2,8,4,3,6,9] 3 4 [0,1,2,3,4,8,6,9] 4 5 [0,1,2,3,4,8,6,9] 6 6 [0,1,2,3,4,6,8,9] 8 시간복잡도 위의 테이블 예시를 보면 n = 8인 array에서 in..
Binary Search Binary Search는 가장 기본적인 탐색 알고리즘 중 하나다. Sorting되어있는 배열의 중간값을 기준으로 크기를 비교하는 과정을 반복하여 search를 진행한다. 만약 77을 찾는다고 하면 가장 먼저 1부터 100 사이의 중간인 middle인 50을 찍는다. 50 77이 되면 87 이후로는 볼 필요가 없기 때문에 버릴 수 있다. 따라서 다음 search에서는 75부터 86 사이의 반을 찍으면 된다. 반복적으로 반을 나눠 (n/2) 들어가기 때문에 $ O(logn) $ 시간에 search가 진..
Matrix의 0을 없애는 방법 Matrix에서 쓸데없는 0들을 없애고 필요한 값만 넣으면 시간을 O(n)으로 줄 일 수 있습니다. 그러면 Marker에서 O(n) Stack에서 O(n) Matrix(이 경우 Linked List or list)에서 O(n)으로 총 O(n)시간으로 줄게됩니다. Linked List 먼저 링크드리스트를 이용하려고 합니다. 동치관계를 위해서는 Insert기능만 필요하므로 Insert만 구현하고 링크드리스트의 자세한 내용은 다음에 포스팅 하겠습니다. Linked List를 사용 할 때는 Matrix를 기억하는 변수 대신 Node를 기억하는 변수를 사용하면 됩니다. List 학교에서 수업을 들을 때는 C++의 벡터를 이용했지만 Python에서는 기본 자료형인 list를 이용하면..
동치관계란? 동치관계란 모든 원소 사이에서 동치율이 성립하는 것을 말한다. 동치관계가 성립하기 위해서는 반사, 대칭, 추이를 만족해야한다. 동치관계를 코딩으로 알기 위해서는? 위의 동치관계가 Minimul Form으로 주어진다고 하자. Minimul Form이란 유추가 가능한 쌍들은 주어지지 않는 것을 말한다. ex) 10 7 -> 총 10개의 node 7개의 input 1 3 3 9 6 2 5 10 7 3 4 9 8 10 동치관계를 위해서는 Marker와 Matrix가 필요하다. 추가로 Stack도 필요하다. Marker은 방문한 Node를 체크하는 역할을 하고 Matrix는 Node간의 연결 관계를 담고있다. 1. 가장 먼저 1번 Node에서 시작한다.(어떤 Node에서 시작하느냐는 상관 없다.) 2..
Queue Queue는Tail에서는 Insert, Head에서는 Delete가 이루어지는 구조이다. 흔히 매표소를 비유한다. First in, First out이다. 성능 Insert: O(1) Delete: O(1) 간단한 구현 Queue를 이용한 미로찾기 1. 현재 위치에서 갈 수 있는 모든 위치를 Queue에 넣는다. 2. Queue에서 위치를 꺼내서 전진한다. 3. Queue가 비었으면 실패한다. 4. 오른쪽 맨 아래에 도착하면 성공한다. BFS 미로찾기의 정확성 DFS 미로찾기와 비슷하다. 갈수 있는 모든 곳은 Queue에 넣으므로 도착지점까지의 좌표 sequence가 있으면 항상 방문한다.
Stack Stack은 Last in, First out구조로 가장 늦게 들어간 데이터가 가장 먼저 나오는 구조이다. Insert/Delete만 제공하고 각각 Push/Pop이라고 부른다. 성능 Push: O(1) Pop: O(1) 간단한 구현 Stack을 이용한 미로찾기 1. 현재 위치에서 주변에 갈 수 있는 위치 중 하나로 이동하면서 이전에 있던 위치를 Stack에 Push한다. 2. 현재 위치에서 주변에 갈 수 있는 위치가 없으면 Stack에서 Pop해서 이전 위치로 돌아간다. 3. 현재 갈 수 있는 곳이 없으며 Stack이 비어있으면 미로찾기에 실패한다. 4. 오른쪽 맨 아래에 도착하면 성공한다. DFS 미로찾기의 정확성 (0, 0)에서 어떤 위치 (s,t)로 가는 길이 있다고 가정한다. (0,0..