확률적
으로 맞추는 모델. 확률적으로 답을 하기 때문에 항상 같은 답을 주지는 않음.Temperature (온도)
가 100에 가까울수록 더 랜덤해진다.LLM
: Large Language Model웹상
에서 존재하는 문서들이 모델의 훈련 데이터가 됨.위키피디아
가 많이 사용됨.Unsupervised Learning
수학 모델
워드 임베딩(Word Embedding)
이라고 부른다. 1. 더 맵게 - 힙 (Heap)
최댓값
과최솟값
을 구해야 하는 문제가 있다면힙(Heap)
자료 구조 사용을 생각해 봐야 한다.- 왜냐하면 힙은
heapq.heappop
을 통해최솟값
과최댓값
을 빠르게 구할 수 있기 때문이다.- 기본 힙은
최소 힙
이며heapq.heappop(heap)
을 할 경우heap 내부의 최솟값
이 삭제되고 반환된다.- 그렇다면
최댓값
은 어떻게 구할 수 있을까?
최대 힙
은최소 힙
에부호
를 넣어 주면 된다.-
부호를 붙여 준 뒤heapq.heappop(heap)
을 진행할 경우-(최댓값)
이최솟값
이 되기 때문에 반환되고 삭제된다.- 이때 반환된 값에 다시
-
를 붙여 주면최댓값
을 구할 수 있다.import heapq heap = [] list = [1, 2, 3, 4] for num in list: heapq.heappush(heap, -num) -heapq.heappop(heap)
2. N으로 표현 - 동적 계획법 (Dynamic Programming)
- 어떤 경우에
동적 계획법 (Dynamic Programming)
을 사용하는가?
부분 문제
가 겹치거나최적 부분 구조
를 가질 때동적 계획법 (Dynamic Programming)
을 사용한다.- 즉,
작은 문제
를 구해큰 문제
의 정답을 구할 수 있는 경우 사용한다.- 대표적으로는
피보나치 수열
이 존재한다.피보나치 수열
은Fn-1
과Fn-2
이라는작은 문제
로Fn
이라는큰 문제
의 답을 구한다.동적 계획법(Dynamic Programming)
은 큰 문제를 작은 문제로 나누고 작은 문제를 풀어 재귀 호출을 하는Top-Down 풀이
와 작은 문제를 차례대로 풀면서 큰 문제의 답을 구하는Bottom Up 풀이
방법이 존재한다.