-
SKN Family AI 15기 6월 4주차 회고기록../SKN Family AI 15기 2025. 6. 30. 09:23
✍️이번주 회고
전체 회고
어느덧 6월이 다 지나가고 6월 마지막주다. 이번주부터 상당히 바빠질 예정인데, 정보처리 기사 시험이 바로 7월에 있다... 맙소사...! 한 개도 공부를 안 한 것 같은데... ㅠㅠ... 그래도 한 번 시험에 도전하는 것을 의의로 두고 최선을 다해 도전해야겠다. 분명히 필기할 때 본 게 분명한데 적으려고 하니 적히지 않는 이유는 무엇일까? 서술형이란게 참 그렇다...
Keep
- 드디어 딥러닝 모델의 구현을 시작했다! 학부 시절 사용한 MNIST 데이터셋이 참 반갑다... ^_^ pytorch로 모델을 하나하나 구현해 가는 과정은 좀 지루하긴 한데(아무래도 전부 한 줄 한줄 구현하는 거다보니까?), 그래도 이런 코드 한 줄 한 줄이 모여서 컴퓨터가 손글씨를 인식할 수 있게 된다니 신기한 것 같다.
- 모델의 성능을 개선하기 위해 dropout을 넣거나 배치 정규화를 넣는 등... 천천히 성능을 강화해보는 게 재밌었다. 후반부엔 내가 혼자서 CIFAR-10 데이터셋을 사용하는 모델을(사실상 재사용이긴 하다 ㅋㅋ) 만들어봤다. 맨 아래에 달린 코랩 링크에 내가 구현한 DNN모델이 있다!
Problem
- 어디부터 어디를 필기해야 잘 정리했다고 할 수 있을지... 모르겠다! 딥러닝의 이론은 전부 다 적으려면 페이지를 너무 많이 할애하게 되는데, 나는 요약해서 정리하고 싶다... 이게 참 쉽지 않은데 요약 정리도 요령이 필요하다
Try
- 아무튼 목표는 나중에 누가 DNN이 뭔지, 어떤 원리로 작동하고 어떤 연산을 하는지 요구받았을 때 어떻게든 설명할 수 있는 정도로는 이해하는 것!... 결국 남에게 설명할 수 있게 이해하는 게 가장 중요한 것 같다. 그렇지 않으면 배워도 도루묵이라고 할 수 있겟따...
✍️학습 내용 정리!
K-means / K 평균
- 군집화에서 가장 일반적으로 사용되는 알고리즘
- 비지도 학습으로 진행
- 알고리즘이 단순함
차원 축소 기법
- 현실의 데이터는 아주 많은 특성을 가지고 있다.
- 이러한 고차원 데이터는 차원의 저주라는 문제를 발생시킬 수 있음
- 차원의 저주? 데이터 공간이 기하급수적으로 커져 데이터 간의 밀도가 낮아지고 거리가 멀어지는 현상
- 이러한 현상을 피하기 위해 차원을 축소하고 일부 특징만 사용하는 기법이 제안되고 있다.
PCA(주성분 분석)
비지도 학습 기반의 가장 대표적인 선형차원 축소 기법.
데이터에 가장 분산이 큰 방향을 새로운 축(주성분)으로 찾고, 이 축에 데이터를 투영하여 차원을 축소한다.
첫 번째 주성분(PC1)은 데이터의 분산을 가장 많이 설명하는 방향, 두 번째 주성분(PC2)은 PC1과 직교하면서 다음으로 분산을 많이 설명하는 방향, … 이런 방식으로 데이터들을 잘 설명하는 주성분을 찾아낸다.
- 구현이 간단하고 계산 효율성이 높다.
- 데이터의 분산을 최대한 보존하는 방향으로 차원을 축소한다.
- 주성분들은 서로 직교하므로 다중 공선성 문제를 제거하는 효과가 있다.
- 레이블이 없는 비지도 학습 상황에서 널리 사용된다.
- iris 데이터셋의 PCA 전후


인코딩
- 머신 러닝 데이터는 대부분 숫자형 자료를 입력값으로 받는다.
- 그러나, 현실 데이터에는 아주 많은 범주형 데이터가 있음
- 범주형 데이터를 적절한 숫자로 변환하기 위해 다양한 인코딩 방법이 제시되고 있다.
라벨 인코딩/순서형 인코딩
- 원리: 각 고유 범주(카테고리)에 0부터 시작하는 정수를 순서대로 할당
- Scikit-learn 구현: sklearn.preprocessing.OrdinalEncoder
- 주의점 및 한계:
- 순서 정보 가정: 이 방식은 변환된 정수 값들 사이에 **순서 관계(예: 0 < 1 < 2)**가 있음을 모델에 암시
- 순서 없는 명목형 변수에는 부적합
원 핫 인코딩
- 각 고유 범주를 **새로운 이진(binary) 특성(열)**으로 만듦. 해당 범주에 속하는 샘플은 해당 특성 열에 1 값을 가지고, 나머지 새로운 특성 열에는 0 값을 가지게 됨. 즉, 희소행렬.
- 장점:
- 순서 정보 없음: 변환된 결과는 범주 간의 임의적인 순서 관계를 가정하지 않습니다. 따라서 순서가 없는 명목형 변수 처리에 매우 적합
- 다양한 모델 적용성
- 단점:
- 차원 증가: 생성되는 특성의 수가 크게 늘어나 차원의 저주(curse of dimensionality) 문제가 발생하거나 계산량이 증가.
- 다중 공선성(Multicollinearity)
DNN 구현하기
DNN이란?
- 여러개의 은닉층을 가진 심층 인공 신경망

- AND, OR, NAND 연산만 가능했던 기존에 비해 레이어 개수를 늘려 XOR 연산을 구현할 수 있게 되었다!
- DNN의 목적은 모델이 예측한 y값과 실제 y값의 오차(Loss function)를 줄이는 가중치를 찾는 것
- 이번에 사용할 MNIST 데이터셋은 숫자 0부터 9까지 10개의 클래스를 가지기 때문에, 시그모이드 함수 대신 소프트맥스(softmax)함수를 사용하여 다중 클래스 분류를 수행한다.
코드로 구현
'기록.. > SKN Family AI 15기' 카테고리의 다른 글
SKN Family AI 15기 7월 3주차 회고 (2) 2025.07.29 SKN Family AI 15기 7월 1주차 회고 (1) 2025.07.07 SKN Family AI 15기 6월 3주차 회고 (0) 2025.06.24 SKN Family AI 15기 6월 2주차 단위 프로젝트 회고 (0) 2025.06.15 SKN Family AI 15기 6월 1주차 회고 (1) 2025.06.08