[멋사][AI] CNN, RNN

티나(Tina)·2022년 12월 12일

멋사AI

목록 보기
40/41

이번주 진행 주제 : 텍스트 분석과 자연어처리를 할 예정입니다.

  • 이번주 목요일에는 보강이 있습니다. 다음주 수요일에도 보강이 있습니다.
  • CNN은 주로 이미지에 주로 사용이되고 물론 텍스트에도 사용을 합니다. 하지만 이미지에서 더 나은 성능을 보여줍니다.
  • 텍스트 분석을 할 때 머신러닝(Bag Of Words, TF-IDF), 딥러닝(RNN) 순서로 사용할 예정입니다.
    텍스트 분류, 텍스트로 주식의 가격을 예측하는 회귀 모델을 만든다든지 할 때는 주로 RNN이 CNN 보다 더 나은 성능을 내는 편입니다. RNN은 주로 순서가 있는 데이터에 사용합니다. 예를 들어 시계열데이터, 자연어도 말의 앞뒤에 순서가 있기 때문에 시계열, 자연어 등에 사용됩니다.
  • 자연어처리 실습 이후에는 RNN 으로 시계열 데이터를 다뤄볼 예정입니다.

Q.이미지 데이터를 읽어오면 다차원 형태의 구조로 되어있는데 np.array 형태로 되어있음에도 왜 다시 np.array 로 만들어주었을까
A. 리스트 안에는 np.array 로 되어있더라도 여러 장의 이미지를 하나로 만들 때 파이썬 리스트에 작성해 주었습니다. 그래서 이미지 여러 장을 하나의 변수에 넣어주었을 때 해당 변수의 데이터 타입은 파이썬 리스트 구조입니다.
train_test_split에 사용하기 위해, 계산의 편의를 위해 넘파이 형태로 변경해 주었습니다.

합성곱을 하면 3D => 2D 로 변경됩니다.
합성곱은 1D, 2D, 3D 등의 기능을 제공합니다.
텍스트 데이터는 1D로 넣어주고 주변 문맥을 학습하게 합니다.
CNN
1) MNIST, FMNIST, cifar10, 말라리아 혈액도말 이미지, 날씨이미지 를 통해 이미지 분류 실습을 알아보았습니다.
2) CNN Explainer 를 통해 Conv, Pooling 과정을 이미지로 이해해 봤습니다.
3) 왜 완전밀집연결층을 첫 레이어 부터 사용하지 않고 합성곱 연산을 했을까요?
완전밀집연결층은 flatten해서 이미지를 입력해주는데 그러면 주변 이미지를 학습하지 못 하는 문제가 생깁니다.
합성곱, 풀링 연산으로 특징을 학습하고 출력층에서 flatten해서 완전연결밀집층에 주입해 주고 결과를 출력합니다.
4) 기존에 사용했던 DNN 에서 배웠던 개념을 확장해서 합성곱 이후 완전연결밀집층을 구성하는 형태로 진행해 봤습니다.
5) 이미지 전처리 도구는 matplotlib.pyplot 의 imread 를 통해 array 로 읽어올 수도 있고, PIL, OpenCV를 사용할 수도 있습니다.
6) 이미지 증강 기법 등을 통해 이미지를 변환해서 사용할 수도 있습니다.

profile
열심히 사는 중

0개의 댓글