<목차>
1. 앙상블 기법
2. 추천 알고리즘
3. 강화 학습
4. 하이퍼 파라미터 튜닝
1. 그리드 서치
2. 랜덤 서치
5. 머신러닝과 윤리
1. 앙상블 기법
앙상블 기법?
: 여러 개의 예측 모델 결합하여 단일 모델보다 더 나은 성능 얻는 방법
◈ 앙상블 기법의 목적?
1. 예측 성능 향상
2. 과적합 감소
3. 안정성 향상: 모델의 변동성 줄이고, 예측의 일관성 향상
◈ 앙상블 기법의 종류?
- 배깅(Bagging)
- 부스팅(Boosting)
- 스태킹(Stacking)

▒ 배깅(Bagging)
: 여러 모델 병렬적으로 학습, 예측을 평균, 다수결 투표 통해 결정하는 방법
[배깅의 원리]

1. 부트스트랩 샘플링
: 원본 데이터셋에서 중복 허용하여 여러 개의 샘플 무작위로 추출
2. 개별 모델 학습
: 각 부트스트랩 샘플 사용하여 개별 모델 학습
3. 예측 결합
: 모든 모델의 예측 평균내거나, 다수결 투표 통해 최종 예측 결정
[대표 알고리즘]
ex. 랜덤 포레스트
▒ 부스팅(Boosting)
: 순차적으로 모델 학습, 이전 모델이 잘못 예측한 샘플에 더 큰 가중치 부여하여 오류 보정하는 방법
[부스팅의 원리]

1. 초기 모델 학습
: 첫 번째 모델 학습
2. 오류 샘플 가중치 증가
: 첫 번째 모델이 잘못 예측한 샘플의 가중치 증가
3. 순차적 모델 학습
: 가중치가 조정된 샘플 사용하여 다음 모델 학습
4. 예측 결합
: 모든 모델의 예측 가중 평균하여 최종 예측
[대표 알고리즘]
ex. AdaBoost, Gradient Boosting, XGBoost
▒ 스태킹(Stacking)
: 여러 모델의 예측 결과를 입력으로 사용하여 메타 모델 학습시키는 방법
[스태킹의 원리]

1. 기본 모델 학습
: 여러 개의 기본 모델 학습
2. 메타 모델 학습
: 기본 모델의 예측 결과를 입력으로 사용하여 메타 모델 학습
3. 최종 예측
: 메타 모델의 예측 결과를 최종 예측으로 사용
[대표 알고리즘]
ex. 다층 퍼셉트론(MLP)을 메타 모델로 사용하는 스태킹 방법
| 앙상블 기법 장점 | 앙상블 기법 단점 |
| 1) 예측 성능 향상: 여러 모델의 예측 결합하여 더 높은 정확도 2) 과적합 감소: 다양한 모델의 결과 결합하여 개별 모델의 과적합 방지 3) 안정성 향상: 모델의 변동성 줄이고, 예측의 일관성 향상 |
1) 복잡성 증가: 여러 모델 학습시키고 결합하는 과정 복잡 2) 해석 어려움: 단일 모델에 비해 해석 어려움 3) 계산 비용: 여러 모델 학습시키야 하기 때문에 계산 비용 증가 |
2. 추천 알고리즘
추천 시스템?

: 사용자와 아이템 간의 관계 분석하여 사용자에게 적합한 아이템 추천하는 시스템
◈ 추천 시스템의 목적?
1. 사용자 만족도 향상: 사용자가 선호할 만한 아이템 추천하여 만족도 향상
2. 판매 증대: 적절한 제품 추천 통해 구매 촉진
3. 사용자 참여 증대: 맞춤형 콘텐츠 제공하여 사용자 참여 유도
◈ 추천 시스템의 종류?
- 협업 필터링 (Collaborative Filtering)
- 콘텐츠 기반 필터링 (Content-Based Filtering)
▒ 협업 필터링 (Collaborative Filtering)

: 사용자 간의 유사성 또는 아이템 간의 유사성을 이용하여 추천을 수행하는 방법
[협업 필터링 원리]
1. 사용자 기반 협업 필터링 (User-Based Collaborative Filtering)
- 유사한 취향을 가진 사용자들이 선호하는 아이템을 추천
ex. A와 B가 비슷한 영화를 좋아하면, A가 좋아하는 영화를 B에게 추천
2. 아이템 기반 협업 필터링 (Item-Based Collaborative Filtering)
- 유사한 아이템을 선호하는 사용자들에게 그 아이템을 추천
ex. A가 좋아하는 영화와 비슷한 영화를 A에게 추천
| 장점 | 단점 |
| 1) 개인화된 추천: 사용자의 과거 행동 기반으로 추천 2) 데이터 활용: 대규모 사용자 데이터 활용하여 추천 정확도 향상 |
1) 콜드 스타트 문제: 신규 사용자, 신규 아이템 정보 부족할 경우 추천 어려움 2) 데이터 희소성 문제: 사용자-아이템 매트릭스 희소할 때 추천의 정확도 저하 |
▒ 콘텐츠 기반 필터링 (Content-Based Filtering)
: 아이템의 특징을 분석하여 사용자가 선호할 만한 유사한 아이템을 추천하는 방법
[콘텐츠 기반 필터링의 원리]

1. 아이템 특징 추출
- 각 아이템의 특징(장르, 배우, 저자 등) 추출
ex. 영화의 장르, 출연 배우, 감독 등
2. 사용자 프로필 생성
- 사용자가 선호하는 아이템의 특징 기반 사용자 프로필 생성
ex. 사용자가 좋아하는 영화의 장르와 출연 배우를 분석하여 사용자 프로필 생성
3. 유사한 아이템 추천
- 사용자 프로필과 유사한 특징 가진 아이템 추천
ex. 사용자가 좋아하는 장르의 영화를 추천
| 장점 | 단점 |
| 1) 콜드 스타트 문제 해결: 사용자 또는 아이템의 특징만으로 추천 가능 2) 투명성: 추천 이유 설명 용이 |
1) 특징 선택의 어려움: 적절한 특징 선택 어려움 2) 다양성 부족: 사용자가 이미 알고 있는 유사한 아이템만 추천할 가능성 |
▒ 하이브리드 방법 (Hybrid Methods)
: 협업 필터링과 콘텐츠 기반 필터링 결합(추천 성능을 향상 방법)
[하이브리드 방법의 원리]

1. 결합 방법
- 협업 필터링과 콘텐츠 기반 필터링의 결과 결합하여 최종 추천 생성
ex. 두 방법의 추천 결과를 가중 평균하여 결합
2. 단계적 방법
- 첫 번째 단계에서 협업 필터링 사용, 두 번째 단계에서 콘텐츠 기반 필터링 사용하여 추천
ex. 협업 필터링으로 초기 후보를 선정하고, 콘텐츠 기반 필터링으로 최종 추천
| 장점 | 단점 |
| - 성능 향상: 두 방법의 장점 결합하여 추천 성능 극대화 - 유연성: 다양한 방법 조합하여 최적의 추천 시스템 구축 가능 |
- 복잡성 증가: 여러 방법 결합하여 복잡성 증가 - 구현 어려움: 다양한 방법 효과적으로 결합하기 위한 구현 어려울 가능성 |
[추천 시스템의 주요 구성 요소]
| 사용자-아이템 매트릭스 | 특징 벡터 | 유사도 계산 | 모델 학습 및 평가 |
| : 사용자와 아이템 간의 상호작용(평점, 클릭 등) 기록한 매트릭스 | : 사용자와 아이템의 특징 나타내는 벡터 | : 사용자 간 또는 아이템 간의 유사도 계산 방법 | : 추천 모델 학습, 성능 평가 방법 추천 시스템 구성, 목적에 따라 다양한 평가 방법 존재 |
| ex. 영화 평점 매트릭스 | ex. 영화 장르, 감독, 출연 배우 등 | ex. 코사인 유사도, 피어슨 상관계수 | ex. RMSE(Root Mean Squared Error) MAE(Mean Absolute Error) Precision, Recall |
[추천 시스템의 평가 방법]

1. 정확도 (Accuracy)
: 추천 시스템이 얼마나 정확하게 아이템 추천하는지 평가
ex. Precision, Recall, F1 Score
2. 다양성 (Diversity)
: 추천된 아이템이 얼마나 다양한지 평가
ex. 사용자에게 새로운 아이템을 추천할 수 있는 능력
3. 신뢰성 (Trustworthiness)
: 추천된 아이템이 사용자에게 얼마나 신뢰성을 가지는지 평가
ex. 추천된 아이템의 설명 가능성
4. 사용자 만족도 (User Satisfaction)
: 추천 시스템 사용 후 사용자의 만족도 평가
ex. 사용자 피드백, 설문 조사
3. 강화 학습
강화 학습?

: 에이전트가 환경과 상호작용, 보상 최대화하는 행동 정책 학습 방법
◈ 강화 학습의 목적?
- 주어진 환경에서 최적의 행동 정책 학습하여 누적 보상 최대화
Q-learning
: 상태-행동 가치 함수(Q-함수) 학습하여 최적의 정책 찾는 방법
[Q-learning 원리]
1. 초기화

: 모든 상태-행동 쌍의 Q-값 초기화 (보통 0으로 초기화)
2. 에이전트-환경 상호작용
: 에이전트는 현재 상태에서 행동 선택, 환경으로부터 보상과 다음 상태 관찰
3. Q-함수 업데이트
: Q-함수 업데이트
(α는 학습률(Learning Rate), γ할인 인자(Discount Factor))
4. 정책 업데이트
: Q-함수가 업데이트된 후, 에이전트는 새로운 정책에 따라 행동 선택
5. 반복
: 위 과정을 에피소드 또는 시간 단계마다 반복하여 Q-함수 수렴
[Q-learning의 주요 구성 요소]
| 학습률 (Learning Rate, α) | 할인 인자 (Discount Factor, γ) | 탐험과 활용 (Exploration vs. Exploitation) |
| - Q-값 업데이트의 비율 결정 (0<α≤1) (학습률이 높을수록 Q-값이 빠르게 업데이트) |
- 미래 보상의 현재 가치 결정 (0≤γ≤1) - 할인 인자가 클수록 미래 보상 더 중요하게 고려 |
- 탐험(Exploration): 새로운 행동 시도하여 더 많은 정보 얻는 과정 - 활용(Exploitation): 현재 알고 있는 최적의 행동 선택 -ϵ-탐욕정책 ( -greedy policy): 확률ϵ로 탐험하고, 1-ϵ의 확률로 최적의 행동 선택 |
[Q-learning의 장단점]

| 장점 | 단점 |
| 1) 단순성: 알고리즘 단순, 구현 용이 2) 오프라인 학습: 환경의 모델 필요 없으며, 오프라인으로 학습 가능 3) 보편성: 다양한 강화학습 문제에 적용 가능 |
1) 큰 상태 공간: 상태 공간이 크면 Q-테이블의 크기가 커져서 메모리와 계산 비용 증가 2) 연속적인 상태 및 행동 공간: Q-learning은 이산적인 상태 및 행동 공간에 적합, 연속적인 공간에서는 비효율적 3) 탐험-활용 균형: 적절한 값 선택 중요 |
4. 하이퍼 파라미터 튜닝
하이퍼 파라미터 (Hyperparameter)?

: 모델 학습 전에 설정하는 값, 학습 과정 중 변경되지 않음
ex. 결정 트리의 최대 깊이, SVM의 커널 종류, 신경망의 학습률
하이퍼 파라미터 튜닝 (Hyperparameter Tuning)?
: 머신러닝 모델의 성능 최적화하기 위해 하이퍼 파라미터의 최적값 찾는 과정
◈ 하이퍼 파라미터 튜닝의 목적?

- 모델 성능 최적화: 하이퍼 파라미터의 최적값 찾아 모델의 예측 성능 극대화
- 과적합 방지: 적절한 하이퍼 파라미터 설정으로 과적합 방지, 일반화 성능 향상
- 계산 비용 최적화: 효율적인 하이퍼 파라미터 설정으로 모델 학습에 소요되는 시간 절약
◈ 하이퍼 파라미터 튜닝과 모델 성능
- 하이퍼 파라미터 값에 따라 모델의 학습 속도, 성능 크게 달라질 수 있음
- 잘못된 하이퍼 파라미터 설정은 과적합 또는 과소적합 초래
◈ 하이퍼 파라미터 튜닝 방법
1. 그리드 서치 (Grid Search)
2. 랜덤 서치 (Random Search)
4-1. 그리드 서치
그리드 서치 (Grid Search)

: 하이퍼 파라미터의 가능한 값들 모두 탐색하여 최적의 조합 찾는 방법
[그리드 서치 원리]
1. 하이퍼 파라미터 공간 정의
: 각 하이퍼 파라미터에 대해 탐색할 값들의 범위 정의
2. 조합 탐색
: 가능한 모든 하이퍼 파라미터 조합에 대해 모델 학습, 평가
3. 최적 조합 선택
: 평가 성능 가장 좋은 하이퍼 파라미터 조합 선택
| 장점 | 단점 |
| 모든 조합을 탐색하므로 최적의 하이퍼 파라미터 찾을 가능성 높음 | 높음 계산 비용, 많은 시간 소모 |
4-2. 랜덤 서치
랜덤 서치 (Random Search)

: 하이퍼 파라미터 공간에서 무작위로 조합 선택하여 탐색하는 방법
[랜덤 서치 원리]
1. 하이퍼 파라미터 공간 정의
: 각 하이퍼 파라미터에 대해 탐색할 값들의 범위 정의
2. 무작위 조합 선택
: 정의된 하이퍼 파라미터 공간에서 무작위로 조합 선택
3. 최적 조합 선택
: 무작위로 선택된 조합들 중에서 평가 성능 가장 좋은 조합 선택
| 장점 | 단점 |
| 계산 비용이 그리드 서치보다 적고, 빠르게 탐색 가능 | 무작위 선택이므로 최적의 하이퍼 파라미터 찾지 못할 수도 있음 |
5. 머신러닝과 윤리
1. 공정성
- 특정 그룹이나 개인에게 불공정한 결과 초래하지 않도록 보장
- 다양한 출처에서 데이터 수집하여 데이터 다양성 확보
2. 투명성
- 모델의 의사결정 과정 이해, 설명할 수 있어야함
3. 프라이버시
- 개인의 데이터 보호하고, 무단 사용 방지
- 데이터 비식별화 필요
4. 책임성
- 모델의 결과와 사용에 대한 책임
- 모델의 성능과 윤리적 문제 지속적으로 모니터링, 개선할 수 있는 피드백 메커니즘 마련
◈ 머신러닝 시스템 설계
1. 요구사항 명확히 하기
2. 요구사항을 머신러닝 작업으로 구조화하기
3. 데이터 준비
4. 모델 개발
5. 평가 및 피드백
6. 배포 및 운영
7. 모니터링 및 서비스 피드백
1. 요구사항 명확히 하기
- 우리 비즈니스의 목표가 무엇인가?
: 비즈니스의 수익상승? 서비스 이용자의 상승?
- 데이터 상태는 어떤가?
: 데이터소스? 데이터의 크기? 라벨 유무?
- 가용가능한 리소스는 얼마나 되나?
: 클라우드 환경? 모바일 환경? GPU 리소스 유무?
- 시스템의 규모는 얼마나 되나?
: 서비스 이용자 수? 입 출력 컨텐츠 종류? 컨텐츠 크기?
- 기대하는 성능은?
: 목표 정확도? 실시간 서비스?
2. 요구사항을 머신러닝 작업으로 구조화하기
- 머신러닝 목표 정의
: 비즈니스 목표와 연관지어 머신러닝의 목표 정의, 비즈니스 목표 이끌어 낼수 있는 것
- 시스템의 입출력 지정
: 이 목표를 수행하는 머신러닝 시스템의 입력, 출력값 지정
- 적절한 머신러닝 선택
: 학습 유형, 모델 유형
3. 데이터 준비
- 데이터 소스
: 누가 제공하는 데이터인가? 신뢰할 만한가?
어떻게 만들어졌나? 라벨링은 어떻게 처리?
- 데이터 저장소
: RDBMS, NoSQL
- 데이터 유형
: 텍스트? 정형데이터?
- 데이터 전처리
: 결측치 처리, 이상치 처리, 스케일링?
4. 모델 개발
- 간단한 모델부터 시작
: 빠르게 개발, 테스트 가능한 모델
- 점차 복잡한 모델로 전환
: 복잡도가 높은 모델, 하이퍼 파라미터 조정
- 원한다면 여러 모델 조합
: 앙상블
5. 평가 및 피드백
- 오프라인 평가
: confusion matrix, MSE
- 온라인 평가
: 클릭율, 체류시간 등
- 피드백
: 파라미터 조정 등
6. 배포 및 운영
- 클라우드? 온디바이스?
: 배포위치, 서비스 제공 방법
- 모델 압축
: 지식증류, 가지치기, 양자화
7. 모니터링 및 서비스 피드백
- 운영환경에서 테스트
: 셰도배포, A/B테스트
- 예측값 파이프라인 구성
: 배치예측, 온라인 예측
- 모니터링 대상
: 운영서버(평균 서빙시간, 처리량, CPU/GPU사용률),
머신러닝관련(입출력 데이터 모니터링, 정확도)