Bootcamp/KT aivle school

4.7 딥러닝 모델링

Nyamggoon 2025. 4. 7. 19:31

파라미터 초깃값은 랜덤할당

학습할 때 그래서 랜덤하게 결과가 다르게 나타날 수 있음

 

스케일링을 반드시 해주자~ MinMaxScaler or Standardization

 

회귀 모델링

nn.Linear(input, output)

손실함수는 nn.MSELoss() / Mean Squared Error 로 측정!

가중치 없데이트하는 optimizer도 설정

 

batch_size를 통해서, 학습 단위를 설정 : DataLoader 파라미터에서 설정해준다

Epochs : 학습을 얼마나 반복할 것인지 설정

 은닉층 HiddenLayer 은, 활성함수를 필요로 한다. 대부분 ReLU 함수 사용

=> max(0, x) 라서 음수인 경우에 다 0으로 변환해줌. 비선형 함수라서, 딥러닝 즉, 레이어를 여러겹 쌓는 것이 가능해진다.

sigmoid 보다도 더 선호되는 활성함수!

 

분류 모델링

Hidden Layer 에서는 새로운 feature을 만들어주고 가중치를 조정하는 일이 계속 일어남. (정확히 알기 어려움)

-이진분류

> 활성함수 : Sigmoid -> 0과 1사이의 값으로 변환, 0.5보다 높으면 1 0.5보다 낮으면 0으로 취급 

> 손실함수 : Binary Cross Entropy y=1일 때는 log y^, y=0일때는 log(1-y^) 이렇게 되는 것이

이미지 출처 : 나무위

이산확률 분포에서, 베르누이시행의 합과 유사하다. y=1, y=0 인 경우를 독립시행이라고 놓고 이해하면 쉬울 듯

 

-다중분류

> 활성함수: Softmax -> 각 클래스별 확률값으로 변환. 각 클래스별 확률값의 합은 1이 됨

> 손실함수 : Cross Entropy // nn.CrossEntropyLoss()

위의 Binary Cross Entropy와 다른점은, One Hot Encoding이 들어갔다는 점. 그래서 이진 분류에서 y와 1-y로 구분해줬던 것 처럼, y가 특정한 클래스 (예를들어 a) 일 경우 a를 제외한 다른 확률들은 모두 자동으로 0이 된다는 점.

y^ (예측한 값) a b c d
확률값 0.25 0.15 0.33 0.27

이렇게 범주가 주어져 있을 경우, 만약 실제 y값이 a인 경우 0.25 를 제외한 나머지 확률들에는 0이 곱해져 제외된다!

=> 이 과정을 np.argmax() 를 통해서 진행

 

이후에는, MNIST 데이터셋을 이용하여 이것저것 살펴봤습니다.

epoch가 늘어나면 학습시간이 기하급수적으로 늘어나요.. 잘 조절해야 되겠습니다ㅜ

 

Arrays.sort(array); 오름차순 정렬


오늘 오랜만에 헬스장 가서 등운동 했더니 머리가 맑아졌다.

관장님하고 이런저런 이야기 하는데,

"관장님, 네이버 밴드 어플 이용해서 헬스장 커뮤니티 만들면은 사람들도 더 오고, 헬스 메이트도 만들고 하는 게 더 쉽지 않을까요? 공지 올리는 것도 그렇구요"

"근데 그게.. 생각보다 가입을 많이 안해. 대형마트 같이 물건 파는 게 많은 곳은 사람들이 좀 가입 하는데, 여기 헬스장은 뭐 파는 것도 아니고 그래서 참 애매해."

기술이 중요한 게 아니고, 기존에 사람들이 쓰던 걸 포기하면서 까지 굳이굳이 해야하는 그런 차별점? 그런게 없으면은 IT 분야에서는 살아남기가 어렵겠구나.. 하는 생각이 들었다. => 네이버 밴드 가입 이벤트를 실시하면 어떤가? 근데 굳이 그렇게까지 해서 밴드로 모아야 할 이유를 찾기가 어렵구나.. 다들 헬스장은 뭘 보고 찾아가지?

운동시설(운동기구 쌔삥인가 쾌적한가 등) / 트레이너(운동 경력, PT 잘 가르쳐주는가) / 부대시설(물, 휴식공간, 스트레칭 등)

거기에 더해서 오는 사람들? 이 정도일거 같은데 헬스장 내부 커뮤니티 같은 걸 만들면 사람들 잘 안들어 오는감.. 궁금하긴 하다

그냥 뭔가를 만들고 가입시키는 것 자체부터가 일이고, 거기서 유지시키는 것도 일이고 모든게 다 일이네 어렵군.