본문 바로가기
내일배움캠프

36. 내일배움캠프 - 27일차 TIL(딥러닝 2주차, 거북이반day1)

by 새싹_v 2022. 10. 11.
728x90


 

 

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에 빠지지 않게 하기 위해서 정규화나 표준화를 사용해서 전처리를 꼭 해주자!

(출처)https://www.analyticsvidhya.com/blog/2020/04/feature-scaling-machine-learning-normalization-standardization/

 

 

 

거북이 반 

-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 옵션) (강제)
728x90

댓글