TIL
📌
오늘 한 일
딥러닝 2주 차 강의 듣기
거북이 반 수업
오늘은 딥러닝 2주 차를 듣고 시간이 남아서 3주 차 절반 정도까지 들었다.
딥러닝 부분은 생각보다 이해하기가 어렵지 않아서 좋았다.
아직 초반이라 그런거지만 장고 처음 할 때보단 수월한 거 같다.
딥러닝을 듣고 저녁에 거북이 반 수업을 들었다.
거북이 반에서 장고 기초, 깃허브 기초 같이 했는데
다시 한번 복습한다는 느낌으로 들었다.
내일은 회원가입을 배울 거 같은데 잘 따라갈 수 있을지 걱정이다.
이번 주에 공부하고 남은 시간에 장고 원격강의를 다시 한번 들어볼 생각이다.
거북이 반 수업 끝나고도 들었는데 다시 한번 들으니깐 확실히 잘 이해가 간다.
내일 아침 쪽지시험인데 어떤 문제가 나올지 궁금하다.
개인적인 생각으론 장고 아녔으면 좋겠다 ㅋㅋ
이번 주에 학교 중간고사라 중간고사 공부도 해야 한다.
바쁜 한 주를 보낼 거 같다...
딥러닝 2주 차
- 논리 회귀(Logistic regression)
선형 회귀로 풀기 힘든 문제는
Logistic function(=Sigmoid function) 사용 곡선인 형태
실제 많은 자연, 사회현상에서는 특정 변수에 대한 확률 값이 선형이 아닌
S 커브 형태를 따르는 경우가 많다.
S-커브를 함수로 표현해낸 것이 로지스틱 함수(Lofistic function)이다.
딥러닝에서는 시그모이드 함수(Sigmoid function)라고 불린다.
시그모이드 함수(그래프 모양 기억!!)
x(입력)가 음수 방향으로 갈수록 y(출력)가 0에 가까워지고,
x(입력)가 양수 방향으로 갈 수록 y(출력)가 1에 가까워진다.
즉, (중요) 시그모이드 함수를 통과하면 0에서 1 사이 값이 나온다!
logistic regression에서는 Crossentropy라는 손실함수를 사용한다.
Crossentropy : 확률 분포그래프의 차이를 비교할 때는 Crossentropy함수를 사용
- 다항 논리 회귀(Multinomial logistic regression)
다항 논리 회귀(Multinomial logistic regression) : 클래스가 여러 가지일 때 사용
워핫 인코딩 : 다항 분류(Multi-label classification) 문제를 풀 때 출력 값의 형태를 가장 예쁘게
표현할 수 있는 방법 0과 1로만 표현 가능
성적 | 클래스 | one-hot-encoded |
A | 0 | [1,0,0] |
B | 1 | [0,1,0] |
C | 2 | [0,0,1] |
워핫 인코딩을 만드는 방법
1. 클래스(라벨)의 개수만큼 배열을 0으로 채운다.
2. 각 클래스의 인덱스 위치를 정한다.
3. 각 클래스에 해당하는 인덱스에 1을 넣는다.
softmax : 선형 모델에서 나온 결과(Logit)를 모두가 더하면 1이 되도록 만들어주는 함수
- 단항 논리 회귀에서는 sigmoid를 써서 0인지 1인지로만 나누고,
CrossEntropy를 써서 확률 분포 그래프의 차이를 계산해서 최소화한다.
- 다항 논리 회귀에서는 sigmoid를 대신 Softmax를 쓰고 똑같이 CrossEntropy를 사용
- 다양한 머신러닝 모델
- Support Vector Machine(SVM)
Feture(특성)의 개수를 늘려서 예외 상황 발생하는 것을 방지
- k-Nearest neighbors(KNN) :
비슷한 특성을 가진 개체끼리 군집화하는 알고리즘
- Decision tree(의사결정나무) :
스무고개와 같은 방식. 예, 아니 오를 반복 하며 추론하는 방식
- Random forest :
의사결정나무를 여러 개 합친 모델. 의사결정나무는 한 사람이 결정하는 것이면
랜덤 포레스트는 자유민주주의라고 이해하면 된다.
각 나무에서 의사결정을 하고 마지막에 투표(Majority voting)를 통해 최종 답을 결정
- 머신러닝에서의 전처리
전처리(Preprocessing) :
전처리는 넓은 범위의 데이터 정제 작업을 뜻함.
필요 없는 데이터를 지우고 필요한 데이터만을 취하는 것, null값이 있는 행을 삭제하기,
정규화(Normalization), 표준화(Standardization) 등의 많은 작업들을 포함
(머신러닝에서 80%를 차지한다는 말이 있을 정도로 중요한 작업!)
정규화(Normalization) :
정규화는 데이터를 0과 1 사이의 범위를 가지도록 만듦
표준화(Standardization) :
표준화는 데이터의 분포를 정규분포로 바꾼다.
즉 데이터의 평균이 0이 되도록 하고 표준편차가 1이 되도록 만들어준다.
데이터의 평균을 0으로 만들어주면 데이터의 중심이 0에 맞춰지게(Zero-centered)된다.
표준화를 시키게 되면 일반적으로 학습 속도(최저점 수렴 속도)가 빠르고, Local minima에 빠질 가능성이 적다.
Local minima :
에러를 최소화시키는 최저의 파라미터를 찾는 문제에 있어서
피라미터 공간에 수많은 지역적인 홀(hole)들이 존재하여
이러한 local minima에 빠질 경우 전역적인 해(global minimum)를 찾기 힘들게 되는 것
local minima에 빠지지 않게 하기 위해서 정규화나 표준화를 사용해서 전처리를 꼭 해주자!
거북이 반
-f : 쓰기권한(수정, 추가 삭제)이 없더라도, 묻지말고 지우기
-i : 물어보고 지우기 (-I : 여러파일을 지울땐 한번만 물어보기)
-r : 디렉토리 및 그 안의 모든 파일 지우기(reculsive의 약자)
$rm text.txt
// text.txt 파일 지우기.
$rm -f text.txt
// text.txt 파일을 묻지 않고 지우기.
$rm '파일이름'
// 현재 작업중이 directory의 모든 파일 지우기.
$rm -f '파일이름'
// 묻지도 따지지도 않고 다 지우기.
rm -i '폴더이름'
//파일 하나하나 물어보고 지우기.
rm -I '폴더이름'
//전체 파일 한번만 물어보고 다 지우기.
rm -r 'directory1'
// directory1 폴더 및 안의 파일 다 지우기.
rm -rf '폴더이름'
// 묻지도 따지지도 않고 다 지우기. (-f 옵션 + -r 옵션) (강제)
'내일배움캠프' 카테고리의 다른 글
38. 내일배움캠프 - 29일차 TIL(딥러닝 4주차, 거북이반 day3) (0) | 2022.10.13 |
---|---|
37. 내일배움캠프 - 28일차 TIL(딥러닝 3주차, 거북이반 day2) (0) | 2022.10.12 |
35. 내일배움캠프 -6주차 WIL (0) | 2022.10.10 |
34. 내일배움캠프 - 26일차 TIL (1) | 2022.10.07 |
33. 내일배움캠프 - 25일차 TIL 겸 KPT (0) | 2022.10.06 |
댓글