📚Learned (배운 것)
1️⃣ Numpy
- ndarray
- ndarray객체 : np.array([1,4,5,6]← 시퀀스형 자료형, float ← dtype지정)
- 하나의 데이터 type만 배열에 놓을 수 있음
- shape : dimensin구성을 반환 위의 경우에는 (4,)
- dtype : float64, int32 등
- reshape
- element의 개수는 같게, 허나 shape의 크기는 변경
test_matrix = [[1,2,3,4], [1,2,5,8]] np.array(test_matrix).shape #(2,4) np.array(test_matrix).reshape(8,) #array([1,2,3,4,1,2,5,8]) np.array(test_matrix).reshape(-1,2).shape #(4,2) 여기서 -1 : size(=8)기반으로 row 선정해줌 np.array(test_matrix).reshape(1,-1,2).shape #(1,4,2) 되는 거
- flatten
- 다차원의 array를 1차원으로 변환
- np.array(test_matrix).flatten() #array([1,2,3,4,1,2,5,8)]
- indexing, slicing
- arrange ex. np.arrange(30) / zeros, ones, empty
- concat하는 법 : vstack, hstack, np.concatenate( , axis = )
- 비교 : np.all, np.any, np.where, np.argmax, np.argmin
2️⃣ Pandas
- 시리즈 데이터를 df로 묶어서 보는 편
- indexing
- loc - location : index이름 ex)df.loc[:3] ⇒ 3행까지 뽑음
- iloc - position : index number
- group by
df.groupby(['month','item']).agg({'duration":"sum"}).reset_index(drop=True)
df.groupby(['month','item']).agg(
{
"duration":"sum",
'date' : "first"
})
3️⃣ vector
- @연산자, 벡터 행렬 곱연산
- numpy * operator : 일반적인 곱 연산
- np.dot, np.matmul, @연사자는 2차원 행렬의 곱연산에서는 모두 같은 결과를 보여준다.
- matmul과 dot의 큰 차이점은 2가지다. 첫번째는 차이로, dot는 행렬과 상수(constant)의 곱셈을 허용하지만, matmul은 Error를 일으킨다.
- 두번째 차이는, 3차원 이상의 행렬곱(Tensor multiplication)을 수행할 경우, dot와 matmul은 전혀 다른 결과를 낸다.
- L1, L2노름으로 학습방법, 최적화를 다르게 함.
- x = [0, 1, 2]의 L1노름 : 0 + 1 + 2 = 3
- x = [-6, -8] L2노름을 이용한 두 벡터 사이의 거리 : 36+64 루트 = 10
- 두 벡터 사이의 거리 계산
l2_norm(x) - l2_norm(y)
- 두 벡터 사이의 각도 계산
def angle(x,y) :
#내적은 np.inner을 이용해서 계산한다
v = np.inner(x,y) - (l2_norm(x) * l2_norm(y))
theta = np.arccos(v)
return theta
- Proj(x)의 길이는 코사인법칙에 의해 ||x||cos(theta)가 된다
4️⃣ 행렬
- 전치행렬 : transpose matrix
- 역행렬 : numpy.linalg.inv 로 구할 수 있음.
- 손실함수별로 MLE식 도출하기
- Backpropagation으로 가중치 업데이트 계산하기
- 손실함수, 경사하강 개념 정리
- CNN/RNN 개념 정리
✨ 복습할 때 추가로 공부해보기
- For문 대신 lambda 적절히 사용하기
- ex) df.groupby([]).transform(lambda x : (x-x.mean())/x.std() )
- ex) df.groupby([]).filter(lambda x : len(x) ≥3)
- 손실함수별로 MLE식 도출하기
- 선형대수 svm개념 익히기
- Backpropagation으로 직접 가중치 업데이트 계산해보기
- CNN에서 출력 Feature Map 크기 계산
👥피어세션
첫만남 이후 우리 조만의 그라운드룰을 정했다!
- 강의 진도 확인(매주 월요일 분량 정하기)
- 수업 중 모르는 내용 질문
- 과제 중 이해가 잘 가지 않는 부분 질문
- 과제 제출 후 코드 리뷰
💊 마음가짐
- 좋았던 점/ 잘했던 점
- 무사히 부스트캠프 활동을 시작한 된 것 (험난했던 pre-course, 1-2차 코테, 퇴사 인수인계 등의 과정을 거쳐)
- 좋은 팀원분들을 다섯명이나 알게 된 것
- 티스토리를 다시 운영하기로 마음 먹은 것
- 제공강의 뿐만 아니라 이해될 때까지 추가 자료를 계속 파본 것
- 아쉬운 점
- 시간 조율, 체력관리 (10-7시 전후로 개인활동을 해야하는데 매번 진이 빠져서 일찍 피로하게 됨.. 내년에 교환가려면 영어공부도 병행해야하는데 이거 가능할까 ?...?)
- 마스터클래스때 사전 질문 적극적으로 참여하기
- 한 주 회고
- 새삼 많은 사람들이 AI라는 관심사를 갖고 있구나를 이번 부스트캠프를 통해 느꼈다. CV약 75명, NLP 약 65명, RecSys 약 40명의 사람들이 모였는데 하나같이 열정들이 대단하시다 !! 이들이 경쟁자가 아니라 좋은 동료들임을 잊지 말자.
- 부스트캠프를 통해 과연 내가 어떤 것을 얻어가고 싶은지 고민해봐야겠다.
일단 최종 커리어목표가 데싸가 맞는지부터 찬찬히 ..
'회고 > 네이버 부스트캠프 6기 회고' 카테고리의 다른 글
[네이버부스트캠프 ai tech 6기] week4 회고 (0) | 2023.11.27 |
---|---|
[네이버부스트캠프 ai tech 6기] week3 회고 (1) | 2023.11.24 |
[네이버부스트캠프 ai tech 6기] week2 회고 (0) | 2023.11.17 |