alexNet(2012), VGG(2014), GoogleNet(2014), ResNet(2015) 등으로 발전해온 딥러닝의 역사가 있다.
alexNet부터 머신러닝이 아닌 딥러닝으로 직접적으로 불리기 시장했는데 layer의 등장이라고 할 수 있다.
ResNet으로 갈 수록 많은 layer(filter)를 가지고 더욱 더 좋은 결과를 냈다.
이를 비교한 것을 cs231n(스탠포드 univ) 에서 시각화하여 발표했다.
하나의 주제에 대한 여러 이미지를 몇 만, 몇 십만개를 찾기 힘들다면 이미 기존의 데이터를 가공하면된다. 이를 증강한다 라고 하는데, 이 방법은 기존의 데이터를 뒤집거나, 기울거나, 색을 변환한다는 등의 가공을 통해 데이터를 조금더 강력하게 만든다.
Generator라는 파이썬에서 yield를 통한 중간 중간 return처럼 값을 받는 것을 활용한 느낌이다.
조금 다르게 느껴질 수 있는데 간단히 말하면
여러 옵션을 바탕으로 데이터를 가공하여 내보낸다.
각도조절, 뒤집기, 섞기가 가능하다.
data_generator = ImageDataGenerator(horizontal_flip = True,
rotation_range = 30,
vertical_flip= True,
zoom_range=(0.7, 0.9)
)
이런 식으로 사용가능
이렇게 만들어진 generator는 flow를 통해 데이터를 적용하고(fit)
iterator형태를 가지기 때문에 next를 통해 하나하나 불러올 수 있다.
우리가 아는 간단한 iterator형은 enumerate가 있기에 다양한 이미지를 다룰때에는
enumerate를 통한 for문을 이용할 수 있다.