미래내일일경험 - 빅리더(23.06~23.12)/교육

[스터디챌린지] ICT융합대학 스터디 챌린지 8주차(8/19 ~ 8/25)

NINE1ll 2023. 8. 25. 21:10

빅리더 프로젝트 인턴십에 참여한지도 벌써 8주라는 시간이 흘렀습니다. 시간 참 빠르네요. 

오늘은 알고리즘 코딩테스트를 보고..? 본게 맞나 싶긴 합니다. 3시간 동안 삼성 코딩테스트 한 문제를 못풀었어요.. ㅎ

중/상급반으로 시험을 진행하다가 아기상어 문제를 1시 30분 풀다가 ㅎ 포기하고 기초반으로 넘어가서 3문제를 분명 12시 쯔음에 다 풀었는데 백준이 오륜가 아니면 그룹이 오륜가 맞았다고 표시가 안나와요.. ㅎ

요 마지막 문제가 백준 3085번 사탕게임인데 분명 시간내에 풀었는데 체크가 안됩니다. ㅠ 뭐 그래도 한 30분이 안걸려서 풀었으니까 만족은하는데 시험 점수 반영한다고 하셨는데... ㅎ 모르겠습니다. 

그리고 방금? 3시간 전 쯤 프로젝트 신청서를 제줄했습니다. 

1차는 9월 1일 ~ 10월 13일까지 6주 동안 진행되고 이게 프로젝트 당 2팀이 배정되어서 경쟁을 하는 방식으로 진행된다고 하시더라고요.

1지망은 근로복지공단 빅데이터센터의 "AI 기반 업무상재해 처리 지원 서비스"를 지원했고,

2지망은 KoData의 "ESG 평가지표를 활용한 생성형 AI 기반 ESG 컨설팅 플랫폼"에 지원했습니다. 

내일 8/20일 오후 8시에 결정되는데 과연 어느 프로젝트로 가게될지 궁금합니다. 

그래도 나름 시험 점수로는 상위 10등 안에 들지 않을까 싶은데 (시험 점수는 의미 없다고 생각합니다.. ㅎ)과연 가위바위보로 정할까... 이게 빅리더 후기에 가위바위보 이야기가 있어서 너무 무섭습니다. 

지금까지 배웠던 것들을 나열해보면

파이썬 기초, 시각화(Power BI, Tableau), 크롤링, RPA, MYSQL, ML, NLP, 프롬프팅, CV, DL입니다. 8주 동안 배운거.. 치고는 양이 조금 많아보이는데 거의 그냥 기초만 배우는 식으로 진행했던거 같아요. ㅎㅎ 

아무래도 전공이 데이터테크놀로지고 3학년 1학기만 마치고 바쁘게 지원해서 들어왔더니,  머신러닝이나 딥러닝 쪽이 학교 커리큘럼에 있는데도 불구하고 조금 힘들었습니다. 근데 뭐 해냈죠? 하 긴장되는 하루입니다.


앙상블 기법(Ensemble Methods)은 기계 학습에서 사용하는 전략으로, 여러 개의 모델을 학습시켜 그 결과를 결합하여 하나의 최종 예측을 만드는 방법입니다. 이러한 방법은 일반적으로 단일 모델보다 더 나은 성능을 제공합니다.

앙상블 기법에는 주로 다음과 같은 방법들이 있습니다:

  1. 배깅(Bagging):
    • 예: 랜덤 포레스트(Random Forest)
    • 배깅은 동일한 알고리즘을 사용하여 여러 서브셋 데이터를 학습시키고, 그 결과를 평균내어 예측합니다.
    • 각 모델은 원래의 데이터셋에서 부트스트랩(랜덤하게 선택하여 복원 추출) 방식으로 추출된 서브셋을 사용합니다.
  2. 부스팅(Boosting):
    • 예: AdaBoost, Gradient Boosting, XGBoost
    • 부스팅은 순차적으로 모델을 학습시키면서, 이전 모델에서 잘못 예측된 데이터에 더 높은 가중치를 주어 다음 모델이 그 부분을 보완하도록 합니다.
  3. 스태킹(Stacking):
    • 여러 다른 모델의 예측을 결합하여 새로운 모델(meta-model)을 학습시킵니다. 이 meta-model은 다른 모델들의 예측을 입력으로 받아 최종 예측을 출력합니다.

앙상블 기법의 주요 장점은 다음과 같습니다:

  • 성능 향상: 여러 모델의 결합으로 인해 일반적으로 단일 모델보다 더 나은 성능을 얻을 수 있습니다.
  • 과적합 감소: 여러 모델을 결합함으로써 모델의 다양성이 증가하여 과적합을 방지할 수 있습니다.
  • 강건성: 개별 모델의 약점을 상쇄시키기 때문에 더 강건한 모델을 생성할 수 있습니다.

다만, 앙상블 모델은 계산 비용이 높을 수 있으며, 때로는 모델의 해석이 어려울 수도 있습니다.

"배깅"이라는 용어는 "Bootstrap Aggregating"의 줄임말로부터 유래되었습니다. 배깅의 두 주요 구성 요소를 살펴보면 이 이름의 유래를 이해할 수 있습니다:

  1. Bootstrap:
    • 부트스트랩은 통계학에서 원래 데이터셋으로부터 여러 번 랜덤하게 샘플을 추출하여 복원하는 방법을 의미합니다. 이렇게 추출된 샘플들은 원래의 데이터셋과 비슷한 분포를 가질 것이라고 기대합니다.
    • 배깅에서는 이 부트스트랩 샘플링 방법을 사용하여 여러 개의 서브셋 데이터를 생성합니다.
  2. Aggregating:
    • 여러 개의 모델이 각각의 부트스트랩 샘플에서 학습된 후, 그 예측들을 집계(aggregating)하여 최종 예측을 만듭니다.
    • 회귀 문제의 경우, 모델들의 예측값의 평균을 취할 수 있으며, 분류 문제의 경우에는 투표 방식을 사용하여 가장 많이 예측된 클래스를 선택할 수 있습니다.

따라서 "배깅"이라는 용어는 이러한 두 가지 주요 단계, 즉 "부트스트랩"과 "집계"를 결합한 것입니다. 이 두 가지 단계를 통해 배깅은 모델의 분산을 줄이고 과적합을 방지하여 전체적인 성능을 향상시키는 효과를 가집니다.


결국은 원하던 프로젝트인 근로복지공단 빅데이터센터의 "AI 기반 업무상재해 처리 지원 서비스"를 가게 되었습니다.

알고리즘 상위 8명 안에 들었고 < 자소서 < 통계 수학 정도 순으로 우선권을 받았고 3가지에 모두 포함되어서  이유로 선택권을 정말 초반부에 주셔서 선택을 편하게 들어갔습니다. 

이날과 다음날에는 정말 불만이 많았습니다... 프로젝트를 진행해야하는데 팀원이 들어갔다 나왔다. 이게 선정 기준도 정말 모르겠고 너무 어려워서 진짜 어렵습니다.