전체 글

·Ai
1. CNN의 흐름흐름을 이해하기 위해서는 각 모델들이 "왜 만들어졌는가?", "어떤 문제를 해결했는가?", "무슨 구조적 특징이 있는가?"를 중심으로 이해하면 편하다.1-1. LeNet (1998) - 1998년 CNN을 처음 개발한 Yann LeCun의 연구팀이 제시한 CNN 모델 - 이전 모델의 문제점:1) Hand-designed feature extractor로 추출하는 특징의 한계 (ML)2) FC Multi-layer만 사용하는 것은 이미지의 2D 구조를 무시하는 것 (MLP) - 전통적인 머신러닝은 수작업 특징 추출(SIFT, HOG 등)이 필요했었으나 이를 자동화하기 위해 convolution을 이용한 End-to-End 방식의 인공신경망 구조를 제안한 것! [구조]- 입력: 32x32..
·Python
1. 그래프의 개념 - 인접 행렬 / 인접 리스트그래프: 노드(vertex)와 간선(edge)을 이용한 비선형 데이터 구조보통 그래프는 데이터 간의 관계를 표현하는 데 사용데이터를 노드로, 노드 간의 관계나 흐름을 간선으로 표현하며, 간선은 방향이 있을 수도 있고 없을 수도 있음만약 관계나 흐름에서 정도를 표현할 필요가 있다면 가중치(weight)라는 개념을 추가하여 표현그래프의 구현 방식에는 인접 행렬(adjacency matrix)과 인접 리스트(adjacency list)가 있음 인접 행렬은 배열을 활용하여 구현하는 경우가 많음이때 배열의 인덱스는 노드, 배열의 값은 노드의 가중치로 생각하고, 인덱스의 세로 방향을 출발 노드, 가로 방향을 도착 노드로 생각하면 자연스럽게 그래프를 표현할 수 있음예:..
·Ai
[기본 용어 정리]파인튜닝(fine-tuning) : 기존에 학습된(pre-trained) 모델을 새로운 데이터에 맞춰 재학습시키는 과정최적화 : 한정된 GPU 자원에서 학습 속도와 메모리 효율을 극대화하기 위해 기술/설정/코드를 개선하는 일련의 행위GPU가 실제로 어떻게 쓰이는지 이해하고, 메모리 및 연산의 병목을 줄여서 효율적인 모델 학습 환경을 구축해보자! 1. GPU 작동 기초모델 성능 최적화 기술을 이해하고 모델 학습 속도나 메모리 효율성을 개선하기 위해서는 다음 요소를 알아야 한다.- 학습하는 동안 GPU가 어떻게 사용되는지- 어떤 연산이 얼마나 컴퓨터 연산을 많이 잡아 먹는지 Nvidia-ml-py3 라이브러리를 사용하면 파이썬 코드로 메모리 사용량을 모니터링 할 수 있다.= nvidia-s..
·Python
** 이것이 취업을 위한 코딩테스트다 with 파이썬 서적을 바탕으로 작성한 글입니다. - 코딩테스트에서의 구현(Implementation) : 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정 어떤 문제를 풀든지 소스코드를 작성하는 과정은 필수이므로 구현 문제 유형은 모든 범위의 코딩테스트 문제 유형을 포함하는 개념이다. 흔히 구현 유형의 문제는 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제를 의미한다. [구현하기 어려운 문제 유형]- 알고리즘은 간단하지만 코드가 지나치게 길어지는 문제- 특정 소수점까지 출력해야하는 문제- 문자열이 입력으로 주어졌을 때 한 문자 단위로 끊어서 리스트에 넣어야하는 파싱 문제등 사소한 조건 설정이 많은 경우에 코드로 구현하기 까다롭다고 볼 수 있다. [구현 ..
·Python
먼저 기존에 무게 limit에 포커스를 두었던 방식으로 풀었다가 틀린 버전의 코드를 보면서 분석을 작성해보겠다. [1차 시도 (실패)]def solution(people, limit): boat = 0 people.sort() # 오름차순 : [50, 50, 70, 80] temp = limit for man in people: if limit >= man: # 태울 수 있는 경우 limit -= man else: # 태울 수 없어서 새 보트 필요 boat += 1 # 지금까지 태운 사람들 용 보트 +1 limit = temp # limit 다시 초기화 ..
·Python
[문제 분석]1. 부서별 신청 금액 배열 d를 오름차순 정렬2. d금액이 높은 부서부터 한 번씩 할당하고 다음 부서로 넘어간다.3. 과정 2를 budget의 한계가 될 때까지 수행한다. 문제에서 "최대한 많은 부서를 지원"하는 것이 목적이라고 명시했으므로 그리디 알고리즘이라고 볼 수 있다.다만 그동안의 기본 배낭 문제와 같은 문제들에서는 '가치' 혹은 여기서는 '지원 금액'이 많은 것을 목표로 했기에 입력 시퀀스를 내림차순 정렬하여 진행했었지만, 해당 문제에서는 금액에 포커스를 두는 것이 아닌 최대한 많은 부서를 지원하는 것이 목표이므로 오름차순 정렬을 진행하겠다. 또 하나의 포인트는 "물품을 구매할 때는 각 부서가 신청한 금액 만큼은 모두 지원"해야 한다는 부분인데, 이를 통해 0/1 배낭 문제와 같이..
여백 ::
The Orbit of Midnight Oil