Notice
Recent Posts
Recent Comments
Link
01-04 19:27
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

AI 전문가가 되고싶은 사람

[KT 에이블스쿨 기자단] 4주차 회고 본문

기자단 활동

[KT 에이블스쿨 기자단] 4주차 회고

Kimseungwoo0407 2024. 4. 19. 20:38

● 4주차가 되어 이제는 머신러닝에 대해 배우게 되었다.

● 알고리즘 스터디에서는 BFS/DFS 알고리즘을 공부하는 주였는데, 아주 쉽지 않다.... 내가 발표하는 부분이 하필...

● "매일 BFS/DFS 문제를 하나씩은 풀자"라는 생각으로 한 주를 보냈다.

● 결국 발표할 시점이 되니까 자력으로 간단한 BFS/DFS 문제는 풀 수 있는 수준이 되었다.

● 성장해버렸다... 성장해버렸어...

발표한 문제이다!

 

● 머신러닝 복습해보기

 

머신러닝

- 컴퓨터가 명시적인 프로그래밍 없이 데이터로부터 배우고, 그 경험을 바탕으로 자동으로 개선하는 알고리즘 및 모델을 개발하는 인공지능(AI)의 한 분야이다.

- 주어진 데이터를 분석하고, 그 안에서 패턴을 식별하여 예측이나 의사결정을 할 수 있는 모델을 만들어낸다

- 지도 학습(라벨이 지정된 데이터를 사용), 비지도 학습(라벨 없이 데이터만 사용), 강화 학습(보상을 통해 학습) 등 다양한 방법으로 구현될 수 있다.

- 분류, 회귀 문제로 나뉜다.

 

Input으로 들어가는 feature 유형을 공부하였다.

 

1. 수치형 피처

- 금액, 개수, 비율, 기간 등 연속적이거나 이산적인 숫자 값으로 표현되는 피처이다.

- 수치형 피처를 범주형 피처로 변환할 수 있다.

- 카디널리티가 작은 경우 수치형 피처를 ID 값을 가지는 범주형 피처로 처리할 수 있다.

- 또는 수치형 피처를 버킷화 ( 연령별로 그룹화 )해 범주형 피처값으로 나눌 수 있다.

 

* 카디널리티

- 해당 변수 혹은 열에 고유한 값의 수

- 즉 해당 열에 얼마나 많은 고유한 값이 있는가를 말한다.

 

2. 범주형 피처

- 키워드, 기기, 인구 통계학적 요소, 언어, 위치, ID 등 범주로 표현되는 피처이다.

- 범주형 피처는 원-핫, 멀티-핫 또는 그것에 가중치를 부여한 ( 빈도 ) 형식으로 나타낼 수 있다.

- 범주형 피처를 수치 벡터로 변환할 수 있다. ( 임베딩 사용 ) 이는 입력 어휘 집합이 크고 자연어 텍스트처럼 값들 사이에 잠재 관계가 있는 경우 유용하다.

- 해싱 함수를 사용해 더 작은 공간으로 압축할 수 있다. -> 해싱트릭

 

* 원-핫 인코딩

- 각 범주를 이진 벡터로 표현하는 방식으로 각각의 범주에 대해 하나의 열을 생성하고, 해당 범주에 해당하는 열의 값은 1로 설정하고 다른 열의 값은 0으로 설정한다.

- 각 범주는 서로 겹치지 않으므로 한 번에 하나의 범주만 활성화되어 있다.

ex) 사과, 바나나 , 오렌지

사과 [1,0,0]

바나나 [0,1,0]

오렌지[0,0,1]

 

● 간단한 모델인 선형 회귀 모델을 공부해봤다.

로지스틱 회귀는 같이 나오길래 공부해봤다.

 

1. 선형 회귀

- 선형 회귀는 종속 변수와 하나 이상의 독립 변수 간의 선형 관계를 최적의 직선으로 모델링한다.

- 선형 회귀는 데이터의 예측값과 실제값 사이의 제곱 오차의 합을 최소화한다.

- y = b0 + b1x1 + b2x2

 

2. 로지스틱 회귀

- 로지스틱 회귀는 로지스틱 곡선을 피팅해 이진 결과 ( 종속 변수가 0이거나 1의 두 값만 취할 수 있음 )의 확률을 모델링한다.

- 로지스틱 회귀 모델은 확률을 출력한 다음 이진 출력으로 변환한다.

- 소프트맥스 회귀는 두 개 이상의 클래스를 처리하기 위한 로지스틱 회귀의 일반형이다.

- 로지스틱 회귀는 경사하강법, 준뉴턴 방법 등 다양한 최적화 알고리즘을 사용해 푸는데, 로그 손실 함수 또는 교차 엔트로피 함수로 알려진 음의 로그 가능도를 최소화함으로써 관찰된 데이터의 가능도를 최대화한다.

 

● 과대 적합과 과소 적합에 대한 내용을 배우게 되었고 "과대 적합을 어떻게 해결하지"라고 생각해서 따로 공부해보았다.

● 아직 잘 모르는 내용이지만 앞으로 배울 거니까 예습 느낌으로 정리해보았다.

 

1. 더 완전한 학습 데이터

- 데이터가 완전할수록 정규화가 덜 필요하고 복잡한 모델 아키텍처의 잠재력을 활용할 수 있다.

- 다만 학습 데이터가 입력의 전체 범위를 포함하는 것이 중요하다.

- 새로운 케이스들을 포괄하지 않는다면 단순히 양만 는다고해서 도움이 되지 않는다.

 

2. 정규화

- L1과 L2 같은 기법은 손실 함수에 페널티 항을 부여해 가중치 크기를 줄임으로써 모델이 학습 데이터의 노이즈를 학습하기 어렵게 한다.

- 드롭아웃은 주어진 레이어의 뉴런 출력값들을 무작위로 0으로 설정한다. ( 상호 적응을 피하자는 것) 이는 뉴런들끼리 서로의 오류를 상쇄하는 현상을 막음을 의미한다.

 

3. 모델 용량 축소

- 입력 변수 수, 레이어 수, 레이어당 뉴런 수를 줄여 모델 용량을 줄인다. 모델이 간단할수록 기억할 수 있는 정보의 양이 자연스럽게 제한되므로 과적합될 가능성이 작다. 모델이 저장할 수 있는 패턴의 수가 제한되어 있다면 학습 프로세스를 통해 모델은 가장 중요한 패턴들을 학습해야 하므로 일반화 능력이 향상된다.

 

* 데이터가 많을수록 정규화가 덜 필요할 수 있고, 용량이 클수록 정규화가 많이 필요할 수 있으며, 데이터가 많으면 용량이 큰 모델을 사용할 수 있다.

4. 조기 종료

- 검증 손실이 더 이상 줄어들지 않으면 학습 프로세스를 중단한다. 이는 모델이 일반적으로 정보가 아닌 노이즈에서 더 많은 것을 학습하기 시작하는 시점이기 때문이다.

 

5. 앙상블

- 배깅이나 부스팅으로 여러 모델을 결합하면 모델의 분산을 줄여 과적합을 완화하는 데 도움이 된다.

 

● 다음 주는 2 번째 미니 프로젝트가 시작된다 슈우우웃