일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 기계학습
- deque
- Python
- Linear Regression
- BFS
- ChatGPT
- Django
- gradient descent
- 부스트캠프
- dl
- 코딩테스트
- transformer
- attention
- Linear Model
- prompt engineering
- 파이썬
- 알고리즘
- GPT
- LeetCode
- machinelearning
- 일기
- Programmers
- Deeplearning
- 머신러닝
- 프로그래머스
- 코테
- LLM
- rnn
- NLP
- 프롬프트
- Today
- Total
크크루쿠쿠
[Week1] Python Basics for AI & AI Math_Overview [Day5] 본문
[Week1] Python Basics for AI & AI Math_Overview [Day5]
JH_KIM 2021. 8. 8. 22:46Numpy
행렬과 매트릭스를 어떻게 코드로 표현할것인가?
→ list로 표현
하지만 list의 경우에는 큰 데이터 처리에 부적합 → 메모리 효율이 좋지 않음
이를 해결하기위해 numpy 라는 패키지를 사용
- Numerical Python
- 파이썬 과학 계산용 패키지 → 다씀
- Array 연산의 표준
- list에 비해 빠르고 효율적
- for 문 없이 데이터 배열에 대한 처리 제공
- 다양한 기능 제공
np.array 함수를 활용해 배열을 생성한다.
List와 가장 큰 차이점은 dynamic typing not supported
→ 여러가지 data type을 넣을 수 없음
Handling shape
reshape
Array의 shape 크기를 변경함
→ element의 갯수는 동일함
flatten
다차원 array를 1차원 array로 변환
Indexing & Slicing
Indexing
list와 달리 이차원 배열에서 [0,0] 표기법을 제공함
Slicing
list와 다르게 행과 열 부분을 나눠서 slicing 이 가능함
matrix의 부분 집합을 추출할 때 유용
zeros
0으로 가득찬 ndarray 생성
np.zeros(shape, dtype, order)
ones
1로 가득찬 ndarray 생성
zeros와 같음
empty
shape만 주어지고 비어있는 ndarray 생성
→ memory initialization 이 되지 않음
something_like
zeros_like, ones_like, empty_like
→ 기존 ndarray shape만큼의 1,0,empty를 반환해줌
identity
단위행렬을 생성함
n→ number of rows
eye
대각선이 1인 행렬
identity와 다르게 정사각행렬 아니여도 가능
diag
대각 행렬의 값을 추출함
→ 중간값들만 추출해줌
random sampling
np.random.uniform → 균등분포
np.random.noraml → 정규분포
axis
모든 operation function을 실행할 때 기준이 되는 dimension 축
concatenate
numpy array를 붙이는 함수
axis를 사용하는 방법과 사용하지 않는 방법이 있다.
Comparison operation
numpy는 배열의 크기가 동일 할 때 element간 비교의 결과를 Boolean 타입으로 반환
'
np.where → 조건에 맞는 index값 반환
np.isnan → not a number
np.argmax → 최대값의 index 반환 (axis 기반으로 반환 가능)
Pandas
- 구조화된 데이터의 처리를 지원하는 Python 라이브러리
- numpy와 통합하여 스프레드시트 처리 기능 제공
구성
Series → DataFrame중 하나의 Column에 해당하는 데이터의 모음 Object
index를 따로 지정 가능
DataFrame → Data Table 전체를 포함하는 Object
Series를 모아 만든것으로 기본 2차원
loc → index location
index 이름으로
iloc → index position
index number로
lambda
series type data도 map 함수 사용가능
function 대신 dict나 sequence 자료형태로도 가능
replace
map 함수에서 데이터 변환 기능만 담당
apply
map과 달리 series 전체(column)에 해당 함수를 적용
Groupby
split → apply → combine 과정을 거쳐 연산
CNN
MLP는 각 뉴런들이 선형모델과 활성함수로 모두 연결된 (fully connected) 구조였다
Convolution 연산
커널이라는 고정된 벡터를 사용
i가 바뀌게 되더라고 가중치가 바뀌지는 않는다.
parameter size를 많이 줄일 수 있다.
- signal을 커널을 이용해 국소적으로 증폭 또는 감소시켜 정보를 추출 또는 필터링 함.
- 실제 CNN에서는 convolution이 아니라 cross-correlation 연산이지만 convolution이라 부른다.
- 다양한 차원에서 Convolution 연산 가능
2차원에서 output channel을 여러개 만들고 싶으면 커널을 여러개 만들면 된다.
Convolution 연산의 Backpropagation
convolution 연산은 커널이 모든 입력데이터에 공통으로 적용되기 때문에 역전파를 계산하여도 convolution 연산이 나오게 된다
RNN
sequence data
- 소리, 문자열(문법, 문맥, 문장의 의도), 주가 등의 데이터
- sequence data는 i.i.d. 가정을 잘 위배하기 때문에 순서를 바꾸거나 과거 정보 손실이 발생 시 확률분포가 바뀜
어떻게 다루나?
→ 조건부 확률 이용
sequence data를 다루기 위해선 길이가 가변적인 데이터를 다룰 수 있는 모델이 필요함!
RNN 이해하기
기본적인 RNN 모형은 MLP와 유사한 모양
이전 잠재 변수를 이용
BPTT (Backpropagation Through Time)
- 마지막 시점 output에서 gradient 계산 후 순차적으로 계산
- 시퀀스 길이에 길어지면 역전파 알고리즘 계산이 불안정 해지므로 길이를 끊는것이 필요 → truncated BPTT
이러한 문제 때문에 길이가 긴 데이터의 경우는 GRU와 LSTM이라는 대체모델 사용
'DeepLearning > 부스트캠프 AI Tech' 카테고리의 다른 글
[Week2] DL Basic Optimization[Day2] (0) | 2021.08.10 |
---|---|
[Week2] DL Basic [Day1] (0) | 2021.08.09 |
[Week1] Python Basics for AI & AI Math_Overview [Day4] (0) | 2021.08.05 |
[Week1] Python Basics for AI & AI Math_Overview [Day3] (0) | 2021.08.04 |
[Week1] Python Basics for AI & AI Math_Overview [Day2] (0) | 2021.08.04 |