[lab 1-1]
- 1D: Vector
- 2D: Matrix
- 3D: Tensor
- 4D: Tensor를 위로 확장
- 5D: 4차원을 옆으로 확장
- 6D: 5차원을 뒤로 확장
- l t l = (64, 256) ---> 딥러닝을 처음 접할 때 가장 기본적인 matrix
- Vision(이미지,영상) 과 NLP에서는 3차원 데이터를 가지고 입출력을 다룸
- NLP의 3차원 데이터 경우 빨간색 빗금을 친 네모가 하나의 문장이고 batch size만큼 문장이 존재
- 불가피하게 서로 다른 크기 Tensor들의 사칙연산이 이루어질 수 있음
- 'PyTorch' 가 자동적으로 size를 맞춤 => 'Broadcasting'
- 주의: 에러가 존재해도 자동으로 Broadcasting 수행을 하기 때문에 추후 에러 발생 시 원인 찾기 힘들어 조심히 사용
- A.matmul(B) : A행렬과 B행렬의 행렬곱
- A.mul(B) : A행렬과 B행렬의 크기가 다르더라도 broadcasting 된 후 element-wise 곱 수행
- mean(dim=?): 해당 차원 제거 후 평균
- dim : 해당 차원 제거
- dim=0 : 첫번째 차원(행) 제거
- dim=1 : 두 번째 차원(열) 제거
- dim=-1: 마지막 차원(열) 제거
- sum(dim=?): 해당 차원 제거 후 합
- max(dim=?) : 해당 차원 제거 후 원소의 최대값과 인덱스 값(argmax) 출력
[lab 1-2]
- view (numpy에서는 reshape): 텐서의 크기 변경
- 단, 텐서 안의 운소의 개수 유지
- -1: 사용자가 잘 모르겠으나 PyTorch에 맡김
- squeeze: 차원이 1인 경우 해당 차원 제거
- dim=0 : 첫 번째 차원(행)에 1이 있을 경우 제거
- dim=1: 두 번째 차원(열)에 1이 있을 경우 제거
- unsqueeze: 특정 위치에 1인 차원 추가
- Type Casting -> 자료형 변
- torch.FloatTensor: 32bit 부동소수점
- torch.LongTensor: 64bit 부호 있는 정수
- torch.ByteTensor: Byte 타입
- cat: 두 텐서를 연결
- dim=0: 첫 번째 차원(행)을 늘림
- dim=1: 두 번째 차원(열)을 늘림
- cat vs stack (stack이 더 편리)
- cat : 기준 차원에 대해 두 텐서의 요소를 연결하며(list의 extend), 기준 차원을 제외한 shape은 동일해야 함
- stack: 새로운 차원을 기준으로 두 텐서를 연결하며, 대상이 되는 텐서의 모양이 모두 같아야 함
- ones_like(): 동일한 크기의 1로 채워진 텐서를 만듦
- zeros_like(): 동일한 크기의 0으로 채워진 텐서를 만듦
- 연산 뒤 _ : 연산 뒤 기존 값을 덮어씀
[lab 8-1]
- AND: 둘 다 1이어야 1
- OR: 하나라도 1이면 1
- 퍼셉트론은 직선으로 나뉜 두 영역을 만듦
- 퍼셉트론 이용하면 AND,OR 문제 해결 가능
- XOR: 서로 같은 값이면 0, 서로 다른 값이면 1
- 한 개의 layer를 가지고 있는 퍼셉트론 구조는 XOR 문제 해결 불가능
- XOR 문제를 해결하려면 멀티 layer가 필요하지만 그 당시 각층의 weight들을 학습할 수 있는 방법 X
- 인공신경망 암흑기 돌입
- 퍼셉트론 구조로 XOR 구현 코드
- 대략 200번째 이상부터는 Loss 값 변화 X -> 제대로 학습 X
* optimizer -> 1. SGD: training data에 대해 error를 일일이 계산한 뒤 가중치 값 즉시 조정(속도 빠름)
2. Batch: 가중치 값의 평균을 계산해서 가중치 값 업데이트(느리지만 안정적)
3. Mini Batch: 일부 train 데이터만 선별해 가중치를 평균 낸 뒤 업데이트(SGD 장점+Batch장점)
- MLP(Multi-Layer Perceptron)이 등장하면서 XOR 문제 해결
'Study > DL' 카테고리의 다른 글
[밑시딥1] Chapter 5. 오차역전파법 (0) | 2024.01.10 |
---|---|
[밑시딥1] Chapter 4. 신경망 학습 (1) | 2024.01.09 |
[밑시딥1] Chapter 3. 신경망 (2) | 2024.01.09 |
[밑시딥1] Chapter 2. 퍼셉트론 (1) | 2024.01.09 |
[파이썬 딥러닝 파이토치] Part 1. Pytorch 기초 (1) | 2024.01.09 |