AI

more

Few-Shot Learning: Basic Concept

해당 포스트는 아래의 강의를 듣고 정리하였으며 1강인 Basic Concept에 대해서만 정리하였습니다. HTML 삽입 미리보기할 수 없는 소스 Few-Shot Learning Few-Shot Learning이란 매우 적은 수(제한된 수)의 샘플을 기반으로 분류 또는 회귀를 수행하는 것을 의미 Support Set: a small set of samples (모델을 훈련시키기에도 너무 작은 사이즈) 인간은 단 네 개의 Support Set 이미지를 보더라도 Query의 사진이 들어왔을 때 구분해낼 수 있으며 어렵지도 않음 하지만 기계는? Class마다 단 두 개의 이미지만을 가지고 있는 경우에도 올바르게 예측해낼 수 있을까? → 신경망을 훈련시키기에도 샘플 수가 너무 적기 때문에 기존의 분류문제보다 훨씬..

AI 2024.02.27 1

[EECS 498-007 / 598-005] Lecture 4. Optimization

해당 포스트는 2019년 강의 영상과 자료를 보고 작성하였으며, 2022년 강의 자료를 통해 보강하였습니다. 해당 포스트에 포함된 이미지는 2022년 강의 자료에서도 확인 가능합니다. HTML 삽입 미리보기할 수 없는 소스 Optimization 손실함수를 최소화 하는 가중치 행렬 w*를 찾는 문제는, 최적화 문제임 이때 우리가 다룰 손실함수 L(w)는 가중치 행렬을 입력으로 받아 스칼라 손실을 출력하는 함수 최적화 문제를 직관적으로 이해할 때는 눈을 감은 채 사진과 같은 고차원의 풍경을 탐색하는 것으로 이해해볼 수 있음 땅의 각 지점(x, y 좌표)은 가중치 행렬 w의 다른 값 해당 지점의 높이는 손실함수 L(w)의 값이 됨 최적화 과정에서 우리는 어디가 바닥인지 정확히 알 수 없지만 탐색을 통해 최저..

EECS 498-007 (598-005) 2024.01.16 1

[EECS 498-007 / 598-005] Lecture 2. Image Classification

해당 포스트는 2019년 강의 영상과 자료를 보고 작성하였으며, 2022년 강의 자료를 통해 보강하였습니다. 해당 포스트에 포함된 이미지는 2022년 강의 자료에서도 확인 가능합니다. HTML 삽입 미리보기할 수 없는 소스 Image Classification: 컴퓨터 비전의 주요 작업 input: 이미지 → output: (주어진/고정된) 카테고리 label 중 해당 이미지에 맞는 label을 달아줌 인간에게는 매우 사소한 작업 (생각을 거치지 않고도 즉각적으로 수행 가능) 하지만 컴퓨터에게는 어려운 작업임 → Probelm: Semantic Gap Problem: Semantic Gap (의미론적 차이) 우리가 고양이 이미지를 보고 고양이로 인식할 때 신체 내부적으로 많은 복잡한 처리를 거침 하지만 ..

EECS 498-007 (598-005) 2024.01.04 3

알고리즘/자료구조

more

[자료구조/Python] 해시(Hash), 해시테이블(Hash Table)

해당 포스팅은 [Do it! 자료구조와 함께 배우는 알고리즘 입문: 파이썬 편]과 [파이썬 알고리즘 인터뷰]을 통해 공부한 내용이 정리되어 있습니다. 해시/해쉬(Hash)란? 흔히 자료구조에서의 해시는 해시 테이블(Hash Table)을 뜻하며, Key와 Value로 어떠한 대응 관계를 나타내는 자료구조임 언어에 따라 해시, 맵, 사전 등으로 불리지만 파이썬에서는 딕셔너리 자료형을 통해 구현(충돌 시 오픈 어드레싱 방식을 사용)되어 있음 해시법(Hashing) 해시법은 '데이터를 저장할 위치 = 인덱스'를 간단한 연산으로 구현하는 것을 뜻함 다시 말해 해시 테이블을 인덱싱하기 위해 해시 함수를 사용하는 것! 원소의 검색, 추가·삭제를 모두 효율적으로 수행할 수 있음: O(1) 우리는 해시 테이블의 인덱스..

알고리즘 2024.01.10 1

[자료형/Python] 딕셔너리(Dictionary)

해당 포스팅은 점프 투 파이썬, 혼자 공부하는 파이썬 책을 보고 1차 정리 후, 추가 공부를 통해 보강하였습니다. 딕셔너리 자료형은 말 그대로 '사전'이라는 의미를 지니며, Key와 Value를 한 쌍으로 갖는 자료형임 Key:Value → baseball:야구, basketball:농구 ... 리스트나 튜플처럼 순차적으로(sequential) 해당 요솟값을 구하지 않고 Key를 통해 Value를 얻음 → 딕셔너리의 가장 큰 특징! 딕셔너리 자료형은 내부적으로 해시 테이블을 이용하므로 데이터의 검색 및 수정에 있어 O(1)의 시간 복잡도를 가짐 자료형 의미 가리키는 위치 선언 형식 리스트 인덱스를 기반으로 값을 저장 인덱스 변수 = [] 딕셔너리 키를 기반으로 값을 저장 키 변수 = {} 딕셔너리의 생성..

알고리즘 2024.01.05 1

백준

more

[백준] 1463번: 1로 만들기 | C++ 풀이

# 문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. # 풀이 오늘도 DP 풀이! 바로 정답 소스 코드를 확인해보자. #include #include using namespace std; int main(){ int n; cin >> n; int D[n+1] = {}; D[1] = 0; for(int i = 2; i < n+1; i++){ D[i] = D[i-1] + 1; if(i%2 == 0) D[i] = min(D[i], D[i/2]+1); if(i%3..

백준 2023.11.13 1

[백준] 1932번: 정수 삼각형 | C++ 풀이

# 문제 위 그림은 크기가 5인 정수 삼각형의 한 모습이다. 맨 위층 7부터 시작해서 아래에 있는 수 중 하나를 선택하여 아래층으로 내려올 때, 이제까지 선택된 수의 합이 최대가 되는 경로를 구하는 프로그램을 작성하라. 아래층에 있는 수는 현재 층에서 선택된 수의 대각선 왼쪽 또는 대각선 오른쪽에 있는 것 중에서만 선택할 수 있다. 삼각형의 크기는 1 이상 500 이하이다. 삼각형을 이루고 있는 각 수는 모두 정수이며, 범위는 0 이상 9999 이하이다. # 풀이 지난 번에 DP 찍먹을 해봤다면 이번에는 아주아주 조금 더 심화! 내 생각엔 언제나 DP로 구현하기 > input[i][j]; } } int D[502][502] = {}; // DP 테이블 생성 및 초기값 할당 D[1][1] = input[1..

C++ 2023.11.11 0

[백준] 9655번: 돌 게임 | C++ 풀이

# 문제 탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 이기게 된다. 두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다. # 풀이1 간만에 돌아온 알고리즘 풀이 해당 문제는 아주 간단하게 풀 수도 있지만 다이나믹 프로그래밍 DP로도 풀어볼 수 있다. 약간 DP 맛보기 문제랄까? 우선 아주 간단하게 푸는 방법 먼저 확인해보자. #include using namespace std; int main(){ int n; cin >> n; if(n%2 == 0) cout n; const int MAX = 1001; int D[MAX]; // DP..

C++ 2023.11.09 1

[백준] 2609번: 최대공약수와 최소공배수 | C++ 풀이

# 문제 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. # 풀이 유클리드 호제법을 이용해 푸는 문제다. 1. 두 수 중에서 큰 수를 a, 작은 수를 b라고 하고 a를 b로 나눈다. 2. a가 b로 나누어떨어지면 두 수의 최대공약수는 b이다. 3. a가 b로 나누어떨어지지 않으면 a를 b로 나눈 나머지와 b에 대하여 1번부터 다시 반복한다. 출처: 생활코딩 C언어의 기초 문법 그림으로 다시 한번 확인해보자. 246과 183의 최대공약수를 구하고자 한다. 더 큰 수인 246을 a로 놓고 183을 b로 놓은 후 a%b로 나머지 연산을 한다. 나머지(r)가 0이 아니므로 b를 a로, 나머지(r)를 b로 놓고 다시 나머지 연산을 수행한다. 나머지가 0일때까지 해당 연산을 ..

C++ 2023.07.05 0
728x90