728x90

프로젝트/2021 한이음(probono) 19

[프로보노 프로젝트] 2021 ICT 한이음(프로보노) 프로젝트 종료 후기

해가 바뀌어 어느새 2022년이다. 나의 2021년이라고 말할 수 있을 정도로 열심히 노력했던, 또 길게 진행했던 한이음 프로보노 트랙이 종료된 후기를 마지막으로 적어보려 한다. 순전히 나를 위한 글이기 때문에 혹여 한이음 프로젝트를 준비하다가 검색으로 이 글을 보게 되어도 도움이 되리라는 장담은 못한다. 이 글은 총 다섯 단계로 나뉘어져 있다. -나는 어떻게 프로보노 프로젝트를 준비했는가 -진행과정 중 어려움은 없었는가 -7개월간 장기 프로젝트를 진행하면서 느낀점 -앞으로의 계획 -간단한 킨텍스 전시회 후기 프로젝트를 진행하면서 개발과정과 공부한 것들은 티스토리에 틈틈히 남겨두었기 때문에 이 글에서는 후기와 솔직한 느낀점 위주로 작성할 예정이다. 1. 나는 어떻게 프로보노 프로젝트를 준비했는가 1.1...

[프로보노 프로젝트] 2021 프로보노 공모전 은상 수상

2021 프로보노 공모전 은상 (정보통신기획평가원장 상) 수상 https://www.hanium.or.kr/portal/project/awardList.do 공모전 수상작 멘토 신청절차 멘토 의무사항 및 혜택 ICT멘토링 프로젝트를 지도하고 지식 나눔을 실천하는 스승이자 인생의 선배로 운영기관으로부터 권한을 승인 받아 멘토로 활동할 수 있습니다. 자격요건 www.hanium.or.kr 우리팀의 보고서는 "노약자를 위한 공개용 STT API를 이용한 인공지능 보이스피싱 방지 시스템" 항목에 업로드 되어있다.

[프로보노프로젝트] 2021 프로보노 공모전 3차 종합 평가 코엑스 대면 발표 후기

0. 서론 4월 말부터 쉬지않고 끊임없이 달려온 프로보노 프로젝트가 드디어 끝이 났다. 나의 첫 번째 장기 프로젝트이다. 7개월 동안 많은 일들이 있었고 넘어질 때도 많았으며 개발 오류를 붙잡고 삼일 꼬박 밤을 샌 적도 있었다. 공모전 마감일이 다가올 수록 불안해서 잠을 설치는 일도 많았다. 결과적으론 나와 팀원들 모두 매우 성장하는 계기가 되었다. 이 글에서는 2021 프로보노 공모전에 대한 전반적인 준비 과정과 3차 종합평가에 대한 것들을 남겨놓으려고 한다. 대략적인 공모전 흐름부터 발표 후 면접관으로 부터 받았던 질문들까지 기억나는 대로 적어두겠다. 1. 공모전 포스터 8월 말이 되면 프로보노 사무국에서 공모전 신청을 받는다. 대부분의 프로젝트들이 중도포기, 산출물 부실 등을 이유로 참여를 꺼리는데..

[프로보노 프로젝트] 토큰화의 실시간성 문제 의견 공유와 해결과정

0. 상황 머신러닝 전처리 개발이 완료되어 이 모듈을 라즈베리파이 우분투에 옮겨 실행시켜보았다. 전처리 중 토큰화 부분이 완료된 것 까지 확인하였고, 그 다음 단계인 불용어를 처리하는 부분에서 다음과 같은 오류가 발생했다. colab에서 실행할 땐 오류가 나지 않았으니 아마 리눅스 python 환경에서 발생하는 버전 충돌 같은데 오류를 잡으려 코드를 수정한 후 다시 실행시키려니 colab에서도 오래 걸리던 토큰화 부분(약 30분)이 리눅스에서는 2시간 이상 걸리는 것을 확인했다. 코드를 수정했음에도 결과를 보기까지 시간이 많이 걸려 계속 이 상태로 진행한다면 다른 오류도 오래 기다려야 했기 때문에 비효율적이라고 판단했다. 문제 : colab환경에서도 리눅스 환경에서도 데이터의 토큰화가 너무 오래 걸림 I..

[프로보노 프로젝트] GitHub README.md 작성

내가 맡은 부분(전처리와 엔진)은 90%정도 개발이 완료되어 깃허브에 COMMIT을 해두었다. 우리의 프로젝트를 모르는 사람도 잘 이해할 수 있게 README도 작성하고싶은데 어떤 내용이 들어가면 좋을지 몰라서 이것저것 찾아보았다. 찾아본 자료들을 백업해둔다. 1. 간단한 Markdowm 예시 ## Markdown 소스코드 블록은 다음과 같이 작성할 수 있습니다. ```c #include int main(void) { printf("Hello World!"); return 0; } ``` 링크는 다음과 같이 작성할 수 있습니다. [블로그 주소](https://cordingdiary.tistory.com/) 순서 없는 목록은 다음과 같이 작성할 수 있습니다. * 깃 튜토리얼 * 깃 Clone * 깃 Pul..

[프로보노프로젝트/딥러닝] 학습 조기종료 콜백함수, 학습단위 - 에포크(Epoch), 배치(batch)

1. 학습 조기종료 콜백함수 학습 조기 종료를 위해서는 ‘EarlyStopping’이라는 함수를 사용하며 학습 도중 더 이상 개선의 여지가 없을 때 학습을 종료시키는 콜백함수이다. 콜백함수는 어떤 함수를 수행 시 그 함수에서 내가 지정한 함수를 호출하는 것을 말하며, 여기서는 fit 함수에서 EarlyStopping이라는 콜백함수가 학습 과정 중에 매번 호출된다. Epoch를 100으로 지정했더라도 학습하는 과정에서 EarlyStopping 콜백함수를 호출하여 해당 조건이 되면 학습을 조기 종료시킨다. EarlyStopping 콜백함수에서 사용할 수 있는 매개변수는 다음과 같다. model.compile(optimizer=rmsprop, loss='binary_crossentropy', metrics=[..

[프로보노프로젝트/딥러닝/개발] sklearn 을 이용한 타겟데이터 만들기 (sklearn:target data) + 그 외 데이터 셋 개발 백업

딥러닝 개발도 어느새 막바지에 접어들었다. 현재까지는 편의를 위해 보이스피싱인 데이터 셋으로 딥러닝 개발을 진행하였다면, 지금부터는 실생활에 사용할 수 있도록 보이스피싱인 데이터, 보이스피싱이 아닌 데이터, 그리고 각각의 데이터 셋에 대한 학습데이터, 검증데이터, 평가데이터, 그리고 타겟데이터를 만들어야 한다. 데이터 셋의 종류가 많기 때문에 헷갈리지 않도록 각각의 개념을 정립하는 것이 중요하다. 나도 처음에는 이 개념을 이해하지 못했기 때문에 개발하는데 자꾸 버벅였다. 내가 뭘 만들어야 하는지 모르니 당연하다. 그럴 때마다 팀장님께서 내가 뭘 만들어야하는지 항상 상기시켜주셨고 초등학생에게 설명하는 것 처럼 각각의 개념에 대해 본인에게 설명해보라고 하셨다. 덕분에 개념을 잘 학습할 수 있었던 것 같다. ..

[프로보노프로젝트/딥러닝] 훈련 / 검증 / 평가 데이터 셋 분할과 홀드아웃 검증(Hold-out validation)

1. 데이터 셋을 분할해야 하는 이유 모델을 올바르게 학습시키기 위해서는 데이터 분할이 필수적이다. 모든 데이터를 학습에 사용하게 되면 과대적합 (over fitting)이 발생하며 성능이 좋지 못하며 어떤 문제를 갖고 있는지 파악할 수 없다. 쉬운 예로, 학생이 시험을 치루는데 정답을 모두 알려준 오픈북 시험이나 다름 없는 것이다. 그렇게 되면 학생의 능력을 제대로 알 수 없게되는 것과 비슷하다. 따라서, 데이터의 일부를 학습에서 제외하여 학습을 완료한 후 현재 모델이 학습하지 않은 데이터에 대해서도 잘 예측할 수 있는지 확인하는 것이 필요하다. 2. 데이터 셋 종류 Train 데이터셋(학습 데이터 셋): -모델을 학습시킬 때 사용하는 데이터 셋 Validation 데이터셋 (검증 데이터 셋): -Tr..

728x90