MNLIST

mnlist
mnist 데이터셋은 handwritten digits(손글씨 숫자)로 이루어져있다.
28 * 28 pixel 단위의 박스로 감싸져있고, grayscale화 되어있다.
화소: 색상 정보를 가지고 있는 최소한의 단위
편광기술
빛의 3원소 → 섞으면 흰색
검은색에서 흰색까지 256가지로 나눠서~
숫자들의 나열 → 2차원
1. 디지털 이미지의 표현 원리와 색상 체계
- 그레이 스케일(Gray Scale)의 수치화:
- 흰색(255)과 검은색(0), 그리고 그 사이의 중간 단계를 256단계의 숫자로 표현
- 배경(테두리) 등 검은색은 0으로 채우고, 밝은 부분은 255, 232, 199 등 수치로 각 픽셀에 담음
- 수치 범위를 벗어나는 입력값 처리: -1 등 하한값 미달은 0으로, 300 등 상한값 초과 시에는 최대치인 255(흰색)로 처리
- 그래픽 출력 원리:
- 각 픽셀의 숫자 정보를 그래픽 카드 메모리에 전달하면, 이를 색상 정보로 인식하여 모니터 픽셀마다 색을 칠함
- 픽셀들이 모여서 연속적인 형태로 보이게 하는 착시 효과를 이용하며, 이는 십자수의 칸마다 실을 채우는 원리와 같음
- 256단계를 사용하는 이유:
- 본질적으로 빛의 파장은 아날로그(연속형)이나, 컴퓨터 처리를 위해 임의로 256단계로 쪼개어 사용
- 기술적으로 천 단계 이상 세밀하게 나누는 것이 가능하고 실제 자연색은 더 어마어마한 단계를 가지나, 인간의 눈은 그 이상의 차이를 감지하지 못함
- 인간이 구분하지 못하는 영역에 굳이 메모리와 고도의 기술을 낭비할 필요가 없으므로 256단계를 표준으로 사용함
- 색상 단계를 너무 세분화하여 높은 파장을 사용하면 눈의 피로도가 심해질 수 있음
- 정밀도가 높은 그래픽 카드나 고가 TV(QLED 등)일수록 색상 정보를 더 예민하게 표현할 수 있으나, 시각적 민감도에 따라 개인별 차이를 느끼는 정도가 다름
2. 하드웨어와 데이터 전송 아키텍처
- 이미지 처리 경로: 디스크 장치 내 파일(JPG, PNG 등) → 주격장치(RAM) 로드 → 그래픽 카드 메모리(VRAM) 이동 → 모니터 출력
- GPU와 메모리의 관계:
- NVIDIA 등 GPU는 2차원 행렬 연산에 특화된 연산자이나, 데이터 자체가 2차원으로 들어오지 못하면 성능 발휘가 불가능
- 메모리는 본래 1차원 구조
- HBM(고대역폭 메모리) 기술:
- 삼성전자, SK하이닉스 등이 주력하는 기술로, 메모리를 수직 층으로 쌓아 2차원 데이터를 병렬로 한꺼번에 전달함.
- GPU가 빠르게 행렬 연산을 돌릴 수 있도록 메모리 단에서 데이터를 2차원 구조로 밀어 넣어주는 역할을 함.
3. 비정형 데이터와 머신러닝 학습의 특징
- 비정형 데이터의 인식: 이미지, 음성, 텍스트 등이 기계에 입력되려면 반드시 숫자 형태의 나열로 변환되어야 함.
- 텍스트 vs 이미지 데이터 비교:
- 텍스트: 단어 간 의미 관계를 수치화하는 임베딩 기술이 필요하며, 1차원의 시퀀스(나열) 정보
- 이미지: 이미 숫자 정보로 구성되어 있어 패턴 탐색이 용이하며, 상하좌우 관계가 있는 본질적인 2차원 배열 데이터
- 학습 구조와 정보 손실:
- SVM 등 기본 머신러닝 모델은 모든 데이터를 1차원으로 늘어뜨려야(Flattening) 학습이 가능
- 이 과정에서 방향 및 위치 정보가 유실되어, '코 밑에 입이 있어야 한다'는 공간적 선후 관계를 무시한 채 인식 오류(예: 코 위에 입이 있어도 입으로 인식)가 발생할 수 있음
- 딥러닝(CNN)으로 넘어가면 이미지를 2차원 구조 그대로 인식하여 이러한 문제를 해결
4. 이미지 파일 형식과 채널(Channel) 구조
- 색상 정보의 물리적 크기:
- 한 픽셀은 추상적 개념이며, 실제 물리적 저장 크기는 8비트(256단계) 단위 채널들의 조합
- RGB: Red, Green, Blue 채널이 각각 8비트씩 차지하여 총 24비트가 소요됨
- RGBA: 투명도(Alpha) 정보 8비트가 추가되어 한 픽셀당 총 32비트의 크기가짐
- 채널의 중첩 구조:
- 컬러 이미지 1장은 실제 메모리상에서 동일한 사이즈의 R, G, B 채널 층 3개가 겹쳐진 형태
- 예를 들어 새빨간색 픽셀은 레드 채널 값이 255, 나머지 채널 값은 0으로 채워짐
- 확장자별 특성 및 주의사항:
- JPG: 주로 RGB(24비트)만 사용하며 알파 채널을 인식하지 않음
- PNG/GIF: 투명도(Alpha) 정보를 포함할 수 있음
- 파일 형식마다 메타 정보(제조사, 수정일, 압축법 등)와 색상 데이터의 저장 구조가 다르므로, 학습 시 일관된 형식으로 전처리를 하지 않으면 구조 불일치로 오류가 발생
- 차원의 저주: 2차원 이미지를 채널별로 분리하고 다시 1차원으로 합치면 피처(Feature) 수가 폭증함 4x4 RGB 이미지의 경우 $4 \times 4 \times 3 \text{채널} = 48$개의 피처가 생성됨.
5. MNIST(MNIST-IN-CSV) 데이터셋 상세 스펙
- 데이터의 특성: 0~9까지의 한 자릿수 십진수 손글씨 이미지 데이터
- 구조적 단순화: 메타 데이터가 제거되어 있고, 3채널이 아닌 단일 채널(원 채널)의 그레이 스케일로 구성되어 구조가 심플
- 이미지 및 컬럼 규격:
- 개별 이미지 크기:28x28 픽셀
- 피처 수: 2차원 이미지를 1차원으로 늘어뜨려 총 784개의 픽셀 피처가 생성됨
- 라벨 컬럼: 맨 앞의 첫 번째 컬럼에 정답(0~9) 정보가 위치
- 총 컬럼 수: 정답(1) + 피처(784) = 총 785개의 컬럼으로 구성
- CSV 내 데이터 배치: '4행 7열'과 같은 2차원 위치 정보를 무시하고 옆으로 길게 나열하여 저장되어 있음
6. Kaggle API 실습 및 개발 환경 설정
- 라이브러리 및 API 설정:
- pip install kaggle --update를 통해 최신 기능을 설치
- 캐글 회원가입 후 부여받은 개인 API 토큰(키 값)을 설정하여 데이터셋을 직접 호출하고 다운로드
- 운영체제 권한 및 파일 처리:
- 명령어 앞의 느낌표(!)는 파이썬 응용단이 아닌 운영체제(터미널) 단에서 루트/관리자 권한을 일시적으로 빌려 실행한다는 의미
- !unzip을 통해 다운로드한 지파일을 압축 해제하며, 윈도우 권한 문제 발생 시 수동으로 압축을 풀어도 무방
- 디렉토리 관리:
- os.getcwd() (Get Working Directory) 명령어를 통해 현재 작업 중인 실제 경로를 확인하고 파일을 관리
- 파일 탐색기에서 오른쪽 버튼 메뉴를 활용하여 실제 파일 위치를 빠르게 확인 가능
sklearn ←→tesorflow
저차원 ←→고차원
딥러닝에서 원핫인코딩 결과중에 필드값이 1이 될 확률이 가장 높게 나와야된다는 뜻
SVM은 원핫인코딩 필요 없당께
📌 원-핫 인코딩 vs 더미변수 정리
1️⃣ 공통점: 왜 등장하는가?
범주형 데이터를 모델이 이해할 수 있도록
숫자 벡터로 변환하기 위해 사용
예:
- 색상: 빨강 / 파랑 / 초록
- 성별: 남 / 여
- 숫자 클래스: 0 ~ 9 (MNIST)
그냥 숫자로 두면
모델이 크기 비교를 해버릴 수 있음.
예:
A=0, B=1, C=2
→ C가 A보다 “큰 값”이라고 오해함.
그래서
각 범주를 독립된 차원으로 분리함.
2️⃣ 원-핫 인코딩 (One-Hot Encoding)
정의
- 범주 개수 K개라면
- K개의 컬럼을 모두 생성하는 방식
예시 (범주 3개: A, B, C)
| 범주 | A | B | C |
| A | 1 | 0 | 0 |
| B | 0 | 1 | 0 |
| C | 0 | 0 | 1 |
- 항상 1이 하나만 존재
- 0,0,0인 경우는 없음
사용되는 곳
- 딥러닝 출력층 (Softmax)
- 트리모델 (RandomForest, XGBoost 등)
- 다중 분류 문제
특징
- 기준 범주 없음
- 모든 클래스가 동등함
- 확률 계산에 적합
더미변수 (Dummy Coding, K-1 방식)
정의
- 범주가 K개라면
- K-1개의 컬럼만 생성하는 방식
- 하나는 기준 범주(reference category)로 둠
예시 (A, B, C 중 C를 기준)
| 범주 | A | B |
| A | 1 | 0 |
| B | 0 | 1 |
| C | 0 | 0 |
- C는 컬럼이 없음
- 모든 값이 0이면 기준 범주임
왜 하나를 제거하는가?
선형모델에서 완전한 선형 종속성 발생
원-핫을 그대로 쓰면:
A+B+C=1
항상 성립함 → 다중공선성 문제 발생
사용되는 곳
- 선형회귀
- 로지스틱 회귀
- 선형 기반 모델
4️⃣ 핵심 차이 비교
| 구분 | 원-핫 인코딩 | 더미 변수 |
| 컬럼 수 | K개 | K-1개 |
| 기준 범주 | 없음 | 있음 |
| 0,0,0 가능? | 불가능 | 가능 (기준일 때) |
| 주 사용 모델 | 딥러닝, 트리 | 선형/로지스틱 |
5️⃣ 딥러닝에서의 위치
입력 쪽
- 범주형 피처를 숫자로 바꾸기 위해 사용
출력 쪽
- 정답 레이블을 벡터로 표현하기 위해 사용
- Softmax + Cross Entropy와 연결됨
예 (정답이 7일 때, 10개 클래스):
[0,0,0,0,0,0,0,1,0,0][0,0,0,0,0,0,0,1,0,0]
[0,0,0,0,0,0,0,1,0,0]
6️⃣ 한 줄 정리
- 원-핫 인코딩은 범주를 모두 독립 차원으로 만든 것
- 더미변수는 선형모델에서 공선성 방지를 위해 하나를 제거한 것
- 완전히 다른 개념이라기보다는 목적에 따른 표현 방식 차이임
SVM에서 원핫인코딩 안쓰는 이유
1. 이미 숫자 형태로 존재하는 데이터
- 비 정형 데이터인 텍스트와 달리, 이미지는 이미 각 픽셀의 농도가 **숫자 형태(0~255)**로 표현되어 있음
- 따라서 이미지를 기계가 인식할 수 있도록 별도의 임베딩 기술이나 복잡한 숫자 변환 과정을 거칠 필요가 없음
2. 1차원 나열 방식의 단순한 구조
- SVM을 포함한 기본적인 머신러닝 모델은 데이터를 1차원으로 늘어뜨린(Flattening) 형태를 기반으로 학습
- MNIST 데이터셋의 경우, 정답(라벨) 컬럼이 이미 0~9 사이의 10진수 한 자리 숫자로 기록되어 있음
- 이처럼 정답이 단일 숫자(정수) 형태로 주어지기 때문에, 이를 그대로 학습 모델에 연결하여 사용할 수 있음
3. 확률 기반이 아닌 직접적 수치 학습
- 앞서 설명한 딥러닝의 출력층에서는 특정 클래스가 될 '확률'을 계산하기 위해 소프트맥스(Softmax)와 원-핫 인코딩된 벡터를 사용 [사용자 입력 기반]
- 반면, 본 강의에서 다루는 SVM 실습 방식은 전처리된 CSV 파일의 수치 정보를 직접 활용하여 패턴을 찾음
- 데이터셋 자체가 이미 메타데이터가 제거되고 색상 정보가 1차원으로 잘 정리되어 있어, 복잡한 벡터 변환 없이도 모델 연결이 가능
'LG DX DATA SCHOOL' 카테고리의 다른 글
| 02/10 ANN (0) | 2026.02.13 |
|---|---|
| 02/03 화 02/05 목요일 SVM (0) | 2026.02.09 |
| 0130 인공신경망 (0) | 2026.01.30 |
| 0129 목요일 추천시스템 (0) | 2026.01.30 |
| 01/27 NLP (0) | 2026.01.27 |