LG DX DATA SCHOOL

02/09 mnlist

getfeelingsfrom 2026. 2. 13. 09:17

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