SMALL

2026/04 26

인공신경망 이해하기

인공신경망 이해하기인공신경망(Artificial Neural Network)은 인간의 신경 구조에서 아이디어를 얻어 만든 모델이다. 사람의 신경은 외부 자극을 받아들이고, 그 자극을 전달할지 말지를 판단한 뒤, 다음 신경으로 신호를 넘긴다. 인공신경망도 이와 비슷하게 입력값을 받아 계산하고, 그 결과를 다음 단계로 전달한다. 즉, 인공신경망의 기본 흐름은 다음과 같다.입력 받기 → 계산하기 → 출력하기 겉으로 보면 복잡해 보이지만, 하나의 인공신경이 하는 일은 비교적 단순하다. 여러 입력을 받아 각각의 중요도를 반영하고, 그 결과를 기준값과 비교한 뒤 출력값을 만들어낸다. 하나의 인공신경은 어떻게 동작하는가하나의 인공신경은 보통 뉴런(neuron) 또는 노드(node)라고 부른다. 이 노드는 여러 입력값..

STUDY/ML DL 2026.04.30

강화 학습 Reinforcement Learning

강화학습은 “여러 번의 선택을 통해 어떤 행동이 장기적으로 가장 좋은 결과를 만드는지 배우는 과정”이다. 맛집을 찾는 과정을 통해 강화학습의 주요 개념을 설명할 수 있다. 여기서 중요한 점은, 한 번의 선택이 아니라 여러 번의 선택을 반복하면서 점점 더 좋은 선택을 하도록 학습한다는 것이다. agent (에이전트)맛집을 찾으려고 행동하는 주체, 즉 사용자 본인이다.어떤 식당을 선택할지 결정하는 의사결정자이다. environment (환경)에이전트가 상호작용하는 외부 세계이다.예를 들어 음식점 목록, 위치, 가격, 리뷰, 그리고 실제 식사 경험까지 포함된 전체 상황을 의미한다. state (상태)현재 상황에 대한 정보이다.예를 들어 “현재 위치”, “배고픔 정도”, “예산”, “이전에 방문한 식당 경험”..

STUDY/ML DL 2026.04.30

자기지도 학습 Self-supervised Learning, Contrastive Learning

정답(label)을 알고 있는 데이터가 충분해야 지도학습이 가능하다. 그러나 실제로는 정답을 생성하는 데 상당한 비용이 들기 때문에, 충분한 양의 라벨 데이터를 확보하기 어렵다. 이러한 문제를 해결하기 위한 방법으로 자기지도학습(Self-Supervised Learning)이 제안되었다. 이미지는 일반적으로 n×nn \times nn×n 형태의 픽셀 행렬로 표현되며, 이를 작은 영역 단위인 패치(patch)로 나눌 수 있다. 하나의 패치를 기준으로 주변에서도 동일한 크기의 패치를 추출할 수 있으며, 이들 사이에는 공간적 관계가 존재한다.자기지도학습에서는 이러한 패치 간의 관계를 이용하여 가짜 문제(pretext task)를 정의한다. 예를 들어, 두 개의 패치를 입력으로 주고 “이 패치가 기준 패치의 어..

STUDY/ML DL 2026.04.30

백준 BOJ 1417 국회의원 선거

문제 코드import sysimport heapqinput = sys.stdin.readlinen = int(input())votes = [int(input()) for _ in range(n)]dasom = votes[0]heap = [-x for x in votes[1:]]heapq.heapify(heap)cnt = 0while heap and dasom 다솜이가 1번 후보이고, 나머지 후보들이 존재한다. 다솜이가 당선되려면 다른 모든 후보들의 표 보다 다솜이의 표가 커야 한다.그러니 매수는 항상 현재 표가 가장 많은 후보의 지지자에게 해야한다. 한 번 매수 시그 후보 표 -1다솜 표 +1 따라서 다음과 같은 흐름으로 코드를 완성해야 한다.가장 표 많은 후보를 찾는다그 후보 표를 1 줄인다다솜 표를..

CODE 2026.04.29

백준 BOJ 11866 요세푸스 문제 0

문제 코드from collections import dequeimport sysinput = sys.stdin.readlineif __name__ == "__main__": n, k = map(int, input().split()) table = deque(range(1, n+1)) result = [] while table: for _ in range(k-1): table.append(table.popleft()) result.append(table.popleft()) print("") 큐를 연습할 수 있는 대표 문제이다.원 순열로 돌아가면서 k번째 사람을 result라는 새 리스트에 담아준다. popleft() 대신에 rotate..

CODE 2026.04.29