[ComputerSystem] 데이터 분석&CNN

Zoe·2022년 5월 2일
0

ComputerSystem

목록 보기
1/5

데이터분석&CNN


✅ Handling Imbalanced Data

  • 세상에 50:50인 경우는 굉장히 드물다.
  • 20:80 정도는 불균형이라고 하지도 않음
  • 한자리수로 가면 불균형이라고 함
  • 이런 경우가 실세계에서 많음
  • 성능평가 : AUC로 판별
  • 오버샘플링 : 마이너 클래스를 계속 복제하여 사용 -> 오버피팅 가능성이 높아짐
  • 기계가 그 값들을 거의 외우다시피 함.
  • 언더샘플링 : 메이저의 일부만 사용. 데이터가 너무 아까움.
  • 오버샘플링 쓸 바에야 스모트를 쓰기
  • 병원에서 진짜 쓰려고 해 -> 위염에서 위암으로 발전(2%) -> 모델을 잘 만들기 위해 20-30% 갖다 쓰면 비판을 받을 수 있음
  • 제일 좋은 방법은 2:98을 유지하면서 모델을 뽑는거야
  • 요즘 대안은 스택킹 앙상블을 사용함 -> 여러 알고리즘을 섞어서 사용
  • 4명의 의사한테 가서 물어본 것이랑 똑같은 의미
  • 트레이닝 데이터 : 가중치 옵션이 있음 -> 마이너클래스에 가중치를 좀 더 두기
  • 최종 과제를 딥러닝을 적용해서 다시 제출할 때는 필요한 것들 잘 사용해서 가장 좋은 모델을 뽑아내보기

✅ 전자의무기록

  • 정형데이터, 텍스트, 이미지 데이터, 동영상 데이터, 시계열 데이터, 오디오 -> 모든 종류의 데이터를 볼 수 있음
  • CNN은 이미지 처리
  • 타임시리즈 -> 정형데이터 -> 이미지 : CNN에 넣음
  • CNN은 성능이 좋고 전이학습에 용이함

✅ 학습

  • CNN에서 보면 성능이 98% 이상 즉, 인간만큼 좋음
  • 다른 형태의 데이터도 이미지로 변환해서 CNN에 넣고 있음
  • CNN 덕분에 딥러닝이 관심을 받게된 것.
  • AlexNet : 오류율을 10% 떨어뜨림
  • 사람의 시신경이 어떻게 동작? 수용체
  • 해당 시신경이 활성화되는 것을 찾음
  • 2차 평면 그대로 입력을 받자 : CNN
  • 입력 * 가중치
  • convolutional + pooling
  • 이진분류 -> 출력함수 정해서 시그모이드로 값을 찍어주거나
  • 4진분류 -> 소프트맥스
  • 플래튼(fully-connected layer) : 펼치는 것
  • CNN 핵심 연산 : convolution + pooling
  • 필터는 진할수록 큰 값
  • convolutional layer -> filter, 이미지로부터 다양한 feature를 추출하는 데 의미가 있음.
  • maxpooling : 큰 값만 살리고 작은 건 없애 -> 흑백 대조가 진하게 나옴
  • 히든레이어 한층에서 filter를 몇개 쓸지 정의해야 함
  • 뒤로 갈수록 개념이 생성됨. 앞파트는 기계에게 가까운 feature
  • bias가 자동생성됨
  • 자꾸 쌓을 때마다 줄어듦??? 방지하기 위해 패딩 -> 0으로 값을 채움
  • 너무 촘촘히 다 계산하면 오버피팅의 위험 -> 따라서 stride
  • 한번에 3장 나오는 건 -> 컬러 rgb
  • 흑백 따로 model.fit / 컬러 따로 model.fit -> 나중에 합치던가 ..
  • affine 연산 -> convolution 연산으로 대체된 것

✅ 전이 학습

  • 만들어놓은 모델의 common한 feature를 활용해서 학습
  • 병원은 전이학습이 잘 안돼. distribution이 달라서
  • 이미지는 feature의 distribution이란 게 없어
  • 앞에서 데이터는 똑같이 쓰고 뒤에서 fine tuning 하면 됨
  • fully-connected에서 내 모델 집어넣거나 아님 조금 앞에서 집어넣기
  • 이미지, 텍스트에서 강력
  • 메타러닝. 원샷러닝. 퓨샷러닝. 투샷러닝
profile
iOS 개발자😺

0개의 댓글