본문 바로가기

전체 글192

[AI 부트캠프] DAY 141 - 마지막 회고 및 소감 [오늘의 일지] 마지막 회고 및 소감 - 부트캠프 마지막 회고, 최종 소감 [상세 내용] 부트캠프 마지막 회고 - 오늘은 이렇게 부트캠프 과정의 일지를 쓰는 마지막 날입니다. 제목에 나와있는 날짜는 141일이지만 실제로 주말을 포함하면 7개월이 넘는 긴 기간이라고 할 수 있습니다. 정말 체계적이고 단계적으로 진행되었던 AI 부트캠프의 과정을 타임라인 순으로 정리해 보고 소감을 적어보려고 합니다. 학습 과정 정리 수학 및 통계학으로 시작 - 처음 학습 과정의 시작은 AI 분야를 접하게 되면 알아야 하는 수학 및 통계학에 대한 수업으로 시작됩니다. 사실 저는 수학이나 통계학이 AI와 무슨 연관성이 있을까 생각을 해봤는데 배우면 배울수록 알게 되겠지만 AI는 데이터를 기반으로 학습을 통해서 발전하는 분야이기 .. 2024. 2. 9.
[AI 부트캠프] DAY 140 - 파이널 프로젝트 31 [오늘의 일지] 프로젝트 - 프로젝트 최종 리뷰 [상세 내용] 프로젝트 최종 리뷰 - 이제 내일이면 한 달이 넘는 기간의 기업 연계 프로젝트가 마무리되는 날이면서 7개월 동안 이어졌던 AI 부트캠프도 마무리되는 날입니다. 오늘은 마지막 프로젝트 기간 과정에서 느꼈던 부분에 대해서 최종적으로 리뷰를 해보도록 하겠습니다. 허무하게 흘러갔던 기간 - 사실 이번 기업 연계 프로젝트는 중간중간 여러 가지 이유로 빠르게 진행되지 못하고 지체되는 기간이 꽤나 길었습니다. 그 원인이 프로그래밍적으로 능력이 부족하거나 전문 지식이 적어서 그랬다면 아쉬운 부분도 덜 있었겠지만 자체적으로는 해결하기 힘들었던 작업 환경의 부재 때분에 발생한 것이라 아쉬움이 더 크게 남았습니다. 특히 마지막 데모 페이지를 만들고 나서 느꼈던 .. 2024. 2. 8.
[AI 부트캠프] DAY 139 - 파이널 프로젝트 30 [오늘의 일지] 프로젝트 - 데모 페이지 만들기 [상세 내용] 데모 페이지 만들기 - 오늘은 본격적으로 간단하면서 사용하기 쉬운 데모 페이지를 만드는 과정을 정리해 보겠습니다. 사실 제가 실제로 개발적인 측면 해서는 한 게 없을 정도로 활용가능한 예시 페이지가 잘 나와있어서 사용하기 편했습니다. 참고 페이지 - 저는 일단 streamlit 내부에서 참고 페이지를 찾다가 마땅히 참고할만한 게 없어서 구글 검색을 통해 찾게 되었습니다. 기존에 학습에서 사용 중인 YOLOv8 모델을 활용한 streamlit 페이지가 없는지 찾은 끝에 매우 유용한 참고 페이지를 발견하게 되어서 거의 수정 없이 사용하게 되었습니다. 참고 페이지의 깃허브 링크는 아래와 같습니다. GitHub - CodingMantras/yolov.. 2024. 2. 7.
[AI 부트캠프] DAY 138 - 파이널 프로젝트 29 [오늘의 일지] 프로젝트 - 데모 페이지 만들기 준비 [상세 내용] 데모 페이지 만들기 준비 계기 - 사실 기업과 연계해서 프로젝트를 한다는 것은 그냥 일반적인 데이콘이나 케글 대회와는 조금 다르다고 생각합니다. 처음에 시작하는 단계는 비슷할 지도 모르지만 최종적으로 알고리즘 모델을 사용해서 특정 평가지표를 통해 경쟁을 하고 마무리되는 대회와는 달리 기업과 연계된 프로젝트는 마지막에 상용화적인 측면의 결과물을 만들어서 제출해야 마무리된다는 점에서 차이가 있다고 생각합니다. 그래서 오늘은 프로젝트를 마무리하기 위해서 기업 측에서 원하는 형태의 서비스를 일시적이고 간단한 형태의 페이지로 만들어 보는 과정을 정리해 보려고 합니다. ML Oops - 데모 페이지를 만들기 앞서서 이번 프로젝트 자체가 ML Oop.. 2024. 2. 6.
[AI 부트캠프] DAY 137 - 파이널 프로젝트 28 [오늘의 일지] 프로젝트 - YOLOv8 대용량 데이터 학습 시 주의해할 점 [상세 내용] YOLOv8 대용량 데이터 학습 시 주의해할 점 - 어제 일지에서 대용량 데이터를 학습하는 과정과 결과에 대해서 정리했습니다. 그럼 오늘은 대용량 데이터를 학습하는 과정에서 겪었던 주의 하면 좋을 거 같은 부분에 대해서 정리해 보겠습니다. RAM 용량 관리 - 자세한 구조나 원리는 모르겠지만 train 데이터를 인식하고 caching 할 때는 램 용량을 많이 사용하지 않은 것으로 보였는데 validation 데이터를 caching 하는 과정에서 생각보다 많이 램 용량을 할당하는 것을 파악했습니다. 그 규모는 약 4만 개의 320픽셀 이미지 데이터를 기준으로 50GB 정도를 할당하는 것으로 보였습니다. 이러한 현상 .. 2024. 2. 3.
[AI 부트캠프] DAY 136 - 파이널 프로젝트 27 [오늘의 일지] 프로젝트 - YOLOv8 다중 클래스 학습 결과 [상세 내용] YOLOv8 다중 클래스 학습 결과 - 지난 일지에서 코랩에서 대용량 데이터를 활용해서 학습을 시키는 방법을 정리하였습니다. 그렇게 학습하게 된 대용량 데이터의 다중 클래스 학습의 결과를 정리해 보겠습니다. 제한된 조건 - 대용량 데이터라도 여유 있는 리소스가 있었다면 평가 지표가 어느 정도 수렴할 때까지 학습시켜 보면 좋겠지만 코랩 프로 플러스의 컴퓨팅 단위가 제한되어 있어서 10 epochs 정도만 학습시키는 걸로 시도해 보았습니다. 학습 결과 - 대용량 데이터의 학습 결과를 직관적으로 결과를 평가하기 위해서는 비교대상이 필요했습니다. 사실 9개의 클래스를 학습시킬 때도 느꼈지만 클래스의 개수가 늘어날수록 같은 epochs.. 2024. 2. 2.
[AI 부트캠프] DAY 135 - 파이널 프로젝트 26 [오늘의 일지] 프로젝트 - 코랩 환경에서 대용량 데이터 활용 [상세 내용] 코랩 환경에서 대용량 데이터 활용 활용 계기 - 지난 일지에서는 코랩 환경이나 로컬에서 소규모 데이터로 학습을 시키고 어느 정도 괜찮은 결과를 얻은 과정에 대해서 정리하였습니다. 이제는 이번 프로젝트의 마지막 학습이라고 할 수 있는 전체 학습 데이터를 가지고 학습만 남아있게 된 것입니다. 전체 데이터는 60GB로 이미지 파일과 txt 파일로만 400만 개가 넘는 양입니다. 이 대용량 데이터를 지원받은 코랩 프로 플러스 환경에서 학습시킨 과정에 대해서 정리해 보겠습니다. 구글 클라우드의 문제점 - 코랩 프로 플러스를 사용하기 위해서는 구글 클라우드도 함께 연동해서 사용해야 했기 때문에 클라우드 용량도 100GB를 지원받아서 사용하.. 2024. 2. 1.
[AI 부트캠프] DAY 134 - 파이널 프로젝트 25 [오늘의 일지] 프로젝트 - 학습 결과 분석 [상세 내용] 학습 결과 분석 - 지난 일지에서는 전체 데이터 중 단일 클래스의 학습 결과를 분석하는 과정을 정리했습니다. 오늘은 기존 단일 클래스 학습보다 전체 클래스는 아니지만 다수의 클래스를 추가해서 학습을 시킨 뒤 결과를 비교 분석해 보는 과정을 정리해 보겠습니다. 학습 조건 - 단일 클래스든 다중 라벨 클래스든 우선 같은 조건으로 학습할 데이터만 다르게 설정을 했습니다. 설정한 조건은 아래와 같습니다. 다만 epochs는 100으로 모두 동일하게 설정을 했지만 early stopper를 설정해서 종료되는 epochs는 차이가 발생했다고 할 수 있습니다. model = YOLO("yolov8m.yaml") results = model.train( dat.. 2024. 1. 31.
[AI 부트캠프] DAY 133 - 파이널 프로젝트 24 [오늘의 일지] 프로젝트 - 결과 이미지 분석 [상세 내용] 결과 이미지 분석 - 오늘은 이미지의 바운딩 박스와 IOU값을 통해서 정말로 예측이 잘 되고 있는지를 파악해 보고 나중에 학습한 데이터를 데모 페이지를 만들거나 예측 서비스를 만들 때 써도 되는지 유무를 판단해 보도록 하겠습니다. 학습 결과 데이터 - 결과 데이터는 지난번에 비교한 320 사이즈의 데이터가 아닌 640 사이즈 데이터를 이용하겠습니다. 몇 번의 학습을 통해서 확인한 결과 이미지의 사이즈가 원래 이미지 보다 작아지면 생각보다 인식이 잘 안 되는 경우도 많았고 640으로 했을 때 320 보다 더 좋은 결과를 얻어서 변경하게 되었습니다. 바운딩 박스 결과 확인 - IOU 값이 0.5나 0.6 정도만 나와도 거의 제대로 detection.. 2024. 1. 30.
[AI 부트캠프] DAY 132 - 파이널 프로젝트 23 [오늘의 일지] 프로젝트 - 학습 결과 분석 [상세 내용] 학습 결과 분석 - 지난 일지에서는 바운딩 박스 데이터에 대해서 잘 못된 위치를 바로잡기 위해서 데이터 로더를 수정하기도 하고 이상치는 제거도 시켜주는 과정을 정리했습니다. 오늘은 수정된 바운딩 박스가 학습 결과에서 얼마나 효과가 있었는지 비교 분석해 보는 과정을 정리해 보겠습니다. 학습 조건 - 원활한 비교를 위해서 다른 조건은 모두 동일하게 해 줬습니다. 다만 전체 epochs는 같지만 early stopper로 인해서 종료되는 epochs는 차이가 발생한 부분이 있다는 것을 알려드리겠습니다. model = YOLO("yolov8n.yaml") results = model.train( data="D:/상표 이미지 및 텍스트/Training/d.. 2024. 1. 27.
반응형