📒 [모두의 딥러닝 - 길벗] 교재를 참고하여 정리합니다. 📗 [핸즈온머신러닝 - 한빛미디어] 교재를 참고하여 정리합니다. 🔗 08. 오토인코더 (AutoEncoder) 1. 오토인코더란? 입력층보다 적은 수의 뉴런를 가진 은닉층을 중간에 넣어 줌으로써 차원을 줄입니다. 이때 학습을 통해 소실된 데이터를 복원하고, 이 과정을 통해 입력 데이터의 특징을 효율적으로 응축한 새로운 출력이 나오는 원리입니다. 오토인코더(Autoencoder)는 어떤 지도 없이도(즉, 레이블되어 있지 않은 훈련 데이터를 사용하여) 잠재 표현(latent representation) 또는 코딩(coding)이라 부르는 입력 데이터의 밀집 표현을 학습할 수 있는 인공 신경망입니다. 이런 코딩은 일반적으로 입력보다 훨씬 더 낮은 차원..
단어 임베딩은 차원 축소와 함께 원-핫 인코딩의 대안으로 생각할 수 있습니다. 텍스트 데이터를 다룰 때 신경망을 포함한 기계 학습 모델에 입력하기 전에 이를 숫자로 변환해야 합니다. 단순함을 위해 단어는 범주형 변수와 비교할 수 있습니다. 범주형 기능을 숫자로 변환하기 위해 원-핫 인코딩을 사용합니다. 그렇게 하기 위해 각 범주에 대해 더미 기능을 만들고 0과 1로 채웁니다. 마찬가지로 텍스트 데이터의 단어에 대해 원-핫 인코딩을 사용하는 경우 각 단어에 대해 더미 기능을 갖게 됩니다. 이는 10,000단어의 어휘에 대해 10,000개의 feature를 의미합니다. 이것은 단어 벡터를 위한 큰 저장 공간을 요구하고 모델 효율성을 감소시키기 때문에 실현 가능한 임베딩 접근 방식이 아닙니다. 임베딩 레이어를..
항등 함수는 잔여 블록의 훈련을 용이하게 만들어 줍니다. $a^{[l]}$과 $a^{[l+2]}$이 같아지는 것도 skip connection 때문입니다. 이것이 의미하는 바는 신경망에 이 두 층을 추가해도 이 두 층이 없는 더 간단한 네트워크 만큼의 성능을 갖게 된다는 것입니다. 그 이유는 항등 함수를 학습하여 $a^{[l+2]}$에 $a^{[l]}$을 대입하면 되기 때문인데요. 이 두 층을 추가했더라도 이것이 바로 잔차 블록을 거대한 신경망 어딘가에 추가해도 성능에 지장이 없는 이유입니다. 우리의 목표는 성능에 지장을 주지 않는 것이 아니라 향상하는 거라서 이 은닉 유닛이 학습을 할 수 있다면 항등 함수를 학습하는 것보다 더 나은 성능을 보여줄 수 있습니다. 이러한 스킵 연결 없이 만들어진 아주 깊은..
previous layer에서 받아 온 activation map은 28x28x192입니다. 왼쪽에서부터 순서대로 살펴보겠습니다. → 1x1 conv 64 → 28x28x64 → 1x1 conv 96 → 3x3 conv 128 → 28x28x128 → 1x1 conv 16 → 5x5 conv 32 → 28x28x32 → 3x3 max pooling, s=1, same 높이와 너비가 28x28로 유지해서 다른 결과와 엮을 수 있음 → 28x28x192 (input과 같음, 채널이 너무 많아 보임. 추가) → 1x1 conv,32 → 28x28x32 참고로 1x1 conv이 마지막에 오면 또 다른 1x1 conv가 필요하지는 않습니다. 마지막으로 사이즈가 동일한 이 블록들을 모아서 연결해줍니다. 이를 cha..
인셉션 모듈은 필터의 크기나 풀링을 결정하는 대신 그것들을 전부 다 적용해서 출력들을 다 엮어낸 뒤, 네트워크가 스스로 원하는 변수나 필터 크기의 조합을 학습합니다. 이렇게 설계하게 된 이전 모델들의 문제점으로는 큰 계산 비용 꼽았습니다. 5x5 filter로 예시를 들어 보면, 해당 필터 32개로 28x28x32의 출력이 나옵니다. input size: 28x28x192 filter: 5x5x192, 32개 output: 28x28x32 필요한 총 곱의 수는 각각의 출력 값을 계산하기 위한 곱의 수에다가 출력 값의 개수를 곱한 수가 됨. 이 모든 수를 곱하면 1억 2천만 정도가 됩니다. → 28x28x32 x 5x5x192 = 120m 1x1 conv는 1/10 정도로 연산을 줄입니다. Using 1x..
일반적인 컨볼루션 연산은 위와 같이 진행됩니다. FxFxK size를 갖는 L개의 필터는 L개의 feature map을 쌓습니다. 1x1 convolution 연산도 같습니다. K개의 feature map에 맞게 depth를 동일하게 유지시켜주고, L개의 필터는 L개의 feature maps을 만듭니다. 예를 들어, 하나의 뉴런이 32개의 숫자를 입력 받고, 32개의 숫자를 각각 같은 높이와 너비에 해당하는 채널 각각에 곱해주고 relu를 해주면 해당하는 값이 하나의 숫자로 나옵니다. FC layer를 36개의 위치에 각각 적용해서 32개의 숫자를 입력값으로 받고 필터의 수만큼 출력하는 것입니다. $n_c^{[l+1]}$ 만약 높이와 너비를 줄이려면 pooling layer를 사용하면 됩니다. 그럼 채널..
배치 정규화는 왜 효과가 있는 것일까? 입력값 $x_1, x_2, x_3$을 받아 레이어를 통과 시켜 추정치 $\hat y$을 얻습니다. 여기서 큰 데이터일 경우, 배치 사이즈를 정해 mini-batch만큼 학습을 시키게 되는데, 이렇게 들어오는 입력값에 따라 데이터의 분포가 바뀔 가능성이 있습니다. 이를 covariate shift라 합니다. 따라서 미니 배치 사이즈 단위로 정규화를 해주면, 입력값이 바뀌어서 발생하는 문제를 안정화 시키고, 분포가 바뀌더라도 평균과 분산이 0과 1로 맞춰지니 조금씩 바뀌게 됩니다. 즉, 앞쪽 레이어에서 계속 학습하며 값이 바뀌더라도 뒤쪽 레이어에서 겪는 부담이 줄어듭니다. 중요한 것은 결국 좋은 추정치를 얻기 위한 매개변수를 학습하여 얻는 것인데, 앞과 뒤에서 발생하는..
너무 공부하기 싫은 강화학습 울며 겨자먹기로 공부 시작 강화학습에는 agent라는 학습자와 의사 결정자가 존재합니다. 그리고 상호 작용하는 주변을 환경(environment)이라고 합니다. 환경은 agent의 행동(action)에 따라 보상(reward)과 새로운 상태(state)를 제공합니다. 따라서 강화학습에선 agent에게 어떻게 해야하는지 가르치지 않고 행동에 따른 긍정적이든 부정적이든 보상을 제공합니다. (나도 잘하면 떡 좀 주라.) 그리고 강화학습은 모든 문제를 수학적으로 공식화합니다. 가장 기본이 되는 공식이 MDP(Markov Decision Process)입니다. 알아야 하는 것 The Agent-Environment relationship Markov Property Markov Pro..
- Total
- Today
- Yesterday
- 구글드라이브서버연동
- NLP
- 서버에다운
- 파이썬
- style transfer
- clip
- few-shot learning
- 구글드라이브서버다운
- cs231n
- stylegan
- python
- 파이썬 딕셔너리
- 프롬프트
- 서버구글드라이브연동
- docker
- CNN
- 파이썬 클래스 다형성
- support set
- 파이썬 클래스 계층 구조
- 퓨샷러닝
- 데이터셋다운로드
- 구글드라이브다운
- 구글드라이브연동
- prompt learning
- Prompt
- vscode 자동 저장
- Unsupervised learning
- 딥러닝
- 도커 컨테이너
- 도커
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |