해당 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 공부하고 정리, 요약한 글입니다. 모든 내용은 해당 도서를 기준으로 합니다. ◼️ 4.1 word2vec 개선 1위 그림과 같이 CBOW 모델은 단어 2개를 맥락으로 사용해 이를 바탕으로 하나의 단어를 추측한다. 이때 입력 측 가중치와의 행렬 곱으로 은닉층이 계산되고 다시 출력 측 가중치와의 행렬 곱으로 각 단어의 점수를 구한다.이 점수에 소프트맥스 함수를 적용해 각 단어의 출현 확률을 얻고 이 확률을 정답 레이블과 비교하여 손실을 구한다. 위 그림에서 보듯 입력층과 출력층에는 각 100만 개의 뉴런이 존재한다. 이 수많은 뉴런 때문에 중간 계산에 많은 시간이 소요되며 다음 두 계산이 병목이 된다.- 입력층의 원핫 표현과 가중치 행렬 Win의 곱 계산.- ..
해당 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 공부하고 정리, 요악한 글입니다. 모든 내용은 해당 도서를 기준으로 합니다. ◼️ 3.1 추론 기반 기법과 신경망단어를 벡터로 표현하는 방법은 통계 기반 기법과 추론 기반 기법이 있다. ◾ 3.1.1 통계 기반 기법의 문제점통계 기반 기법에서는 주변 단어의 빈도를 기초로 단어를 표현해왔으며 단어의 동시발생 행렬을 만들고 그 행렬에 SVD를 적용하여 밀집벡터를 얻었다.하지만 이 방식은 대규모 말뭉치를 다룰 때 문제가 발생한다. 어휘가 100만 개라면, 통계 기반 기법에서는 '100만x100만'이라는 거대한 행렬을 만드는데 이러한 행렬에 SVD를 적용하는 일은 현실적이지 않다.통계 기반 기법은 단 1회의 처리(SVD 등)만에 단어의 분산 표현을 얻는다.추론 기..
해당 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 공부하고 정리, 요약한 글입니다. 모든 내용은 해당 도서를 기준으로 합니다.◼️ 2.1 자연어 처리란한국어와 영어 등 우리가 평소에 쓰는 말을 자연어라고 한다.자연어처리(Natural Language Processing, NLP)를 문자 그대로 해석하면 '자연어를 처리하는 분야'이고 우리의 말을 컴퓨터에게 이해시키기 위한 기술이다. ◼️ 2.2 시소러스시소러스란 유의어 사전으로 '뜻이 같은 단어(동의어)'나 '뜻이 비슷한 단어(유의어)'가 한 그룹으로 분류되어 있다.자연어 처리에 이용되는 시소러스에서는 단어 사이의 '상위와 하위' 혹은 '전체와 부분' 등 더 세세한 관곆ㅏ지 정의해둔 경우가 있다. 모든 단어에 대한 유의어 집합을 만든 다음 단어들의 관계..
해당 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 공부하고 정리, 요약한 글입니다. 모든 내용은 해당 도서를 기준으로 합니다. ◼️ 1.1 수학과 파이썬 복습◾ 1.1.1 벡터와 행렬벡터는 키기와 방향을 가진 양이며 파이썬에서는 1차원 배열로 취급할 수 있다.행렬은 숫자가 2차원 형태(사각형 형상)로 늘어선 것이다.그림 1-1처럼 벡터는 2차원 배열로, 행렬은 2차원 배열로 표현할 수 있다. 행렬에서 가로줄을 행(row)라고 하고 세로줄을 열(column)이라고 한다. 벡터는 표현하는 방법이 두가지 인데, 하나는 숫자들을 세로로 나열하는 방법(열벡터)이고 또 하나는 가로로 나열하는 방법(행벡터)이다. ◾ 1.1.2 행렬의 원소별 연산import numpy as npW = np.array([[1, 2, 3..
MvMHAT: Self-supervised Multi-view Multi-Human Association and Tracking, Yiyang Gan, et al., 2021 을 읽고 정리, 요약한 글입니다.github : https://github.com/realgump/MvMHAT?tab=readme-ov-file ◼️ Abstract Multi-view Multi-human association and tracking(MvMHAT)은 각 뷰에서 시간 경과에 따른 사람 그룹을 추적하고 동시에 여러 뷰에서 동일한 사람을 식별하는 것을 목표로 한다. 시간 경과에 따른 사람 연관성만 고려하는 이전의 multiple object tracking(MOT) 및 multi-target multi-camera tr..
해당 포스팅은 '밑바닥부터 시작하는 딥러닝1'을 공부하고 정리, 요약한 글입니다. 모든 내용은 해당 도서를 기준으로 합니다. ◼️ 8.1 더 깊게 ◾ 8.1.1 더 깊은 신경망 그림 8-1과 같이 구성된 CNN을 만들고자 한다. 여기에서 사용하는 합성곱 계층은 모두 3x3 크기의 작은 필터로 층이 깊어지면서 채널 수가 더 늘어나는 것이 특징이다. 합성곱 계층의 채널 수는 앞 계층에서부터 순서대로 16, 16, 32, 32, 64, 64로 늘어간다. 그림과 같이 풀링 계층을 추가하여 중간 데이터의 공간 크기를 점차 줄여가고 마지막 단의 완전 연결 계층에서는 드롭 아웃 계층을 사용한다. 가중치 초깃값으로 He 초깃값을 사용하고 가중치 매개변수 갱신에는 Adam을 이용한다. import sys, os impo..
해당 포스팅은 '밑바닥부터 시작하는 딥러닝1'을 공부하고 정리, 요한 글입니다. 모든 내용은 해당 도서를 기준으로 합니다. ◼️ 7.1 전체구조 지금까지 본 신경망은 인접하는 계층의 모든 뉴런과 결합되어 있다. 이를 완전 연결(fully-connected)이라고 하며 완전히 연결된 게층을 affine 계층이라는 이름으로 구현했다. CNN도 지금까지 본 신경망과 같이 레고 블록처럼 계층을 조합하여 만들 수 있다. 합성곱 계층(convolutional layer)과 풀링 계층(pooling layer)이 새롭게 등장한다. CNN에서는 새로운 합성곱 계층(conv)과 풀링 계층(pooling)이 추가 되며 CNN 계층은 Conv-FeLU-(Pooling) 흐름으로 연결된다. 지금까지의 Affine-ReLU 연..
해당 포스팅은 '밑바닥부터 시작하는 딥러닝1'을 공부하고 정리, 요약한 글입니다. 모든 내용은 해당 도서를 기준으로 합니다. ◼️ 6.1 매개변수 갱신 ◾ 6.1.3 SGD 단점 SGD는 매개변수의 기울기를 구해 기울어진 방향으로 매개변수 값을 갱신하는 일을 몇 번이고 반복해서 최적의 값에 다가갔다. SGD는 단순하고 구현도 쉽지만 비효율적일 때가 있다. 식 6.2는 그림 6-1의 왼쪽처럼 밥그릇을 x축 방향으로 늘인 모습이며 실제로 등고선은 오른쪽과 같이 x축 방향으로 늘인 타원으로 되어 있다. 식 6.2의 기울기를 그려보면 그림 6-2처럼 된다. 이 기울기는 y축 방향은 크고 x축 방향은 작다는 것이 특징이다. SGD는 그림 6-3과 같은 심하게 굽이진 움직임을 보여주는데 이는 비효율적인 움직임이다...
해당 포스팅은 '밑바닥부터 시작하는 딥러닝1'을 공부하고 정리, 요약한 글입니다. 모든 내용은 해당 도서를 기준으로 합니다. ◼️ 5.1 계산그래프 계산 그래프는 계산 과정을 그래프로 나타낸 것이다. 그래프는 그래프 자료 구조로 복수의 노드와 에지로 표현된다. ◾ 5.1.1 계산 그래프로 풀다 계산 그래프는 계산 과정을 노드와 화살표로 표현한다. 노드는 원으로 표기하고 원 안에 연산 내용을 적는다. 그림 5-1에서는 x2와 x1.1을 각각 하나의 연산으로 취급해 원 안에 표기했지만 곱셈인 x만 연산으로 생각할 수도 있다. 그렇게 되면 그림 5-2처럼 2와 1.1은 각각 사과의 개수와 소비세 변수가 되어 원 밖에 표기하게 된다. 계산 그래프는 왼쪽에서 오른쪽으로 계산을 진행하며 이를 순전파라고 한다. 반대..
해당 포스팅은 '밑바닥부터 시작하는 딥러닝1'을 공부하고 정리, 요약한 글입니다. 모든 내용은 해당 도서 기준입니다. ◾ 4.1 데이터에서 학습 이번 장의 주제는 신경망의 학습이다. 여기서 학습이란 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것을 의미한다. 또, 신경망의 특징은 데이터를 보고 학습할 수 있다는 점이다. ▪️ 4.1.1 데이터 주도 학습 기계학습은 데이터가 생명이다. 데이터에서 답을 찾고 데이터에서 패턴을 발견하고 데이터로 이가리르 만드는 것이 기계학습이다. 그래서 기계학습의 중심에는 데이터가 존재한다. 기계학습에서는 사람의 개입을 최소화하고 수집한 데이터로부터 패턴을 찾으려 시도한다. 게다가 신경망과 딥러닝은 기존 기계학습에서 사용하던 방법보다 사람의 개입을 더욱 배제..