본문 바로가기

딥러닝 이론34

26. [CNN기초] CNN 개요 오랜만입니다. 2022년은 많이 바빠서 개인 연구 포스팅을 거의 못했네요. 2021년에는 선형 회귀, 분류, 기초적인 완전연결 인공신경망 Neural Net, 경사하강법, 데이터 전처리를 포스팅 하였고, 2022년에는 CNN을 천천히 하자 다짐했건만... 솔직히, CNN을 라이브러리없이 구현하는 것이 상당히 어려운 작업이었습니다. 올해는 또 둘째까지 돌보았기 때문에 애기들 자는 밤 10시에 같이 자는 경우가 많았죠...(ㅜㅜ) 결국 공부하고 완성하는데 1년이란 시간이 필요했습니다. 각설하고 CNN이 무엇인지, 1차원 CNN, 2차원 CNN(image to column), pooling을 구현하고 마지막으로 라이브러리 없이 도형(세모,네모,원)을 구별해 보는 내용을 연재합니다. 1. 합성곱(CNN)을 사용.. 2023. 1. 1.
25 - Deep Neural Nets 구현하기 저번 시간까지 다층 퍼셉트론(Multi-Layer Perceptron, MLP)을 이용하여 학습을 시켜보았다. 정의에 대해 조금 더 이야기를 해 보자면 일반적으로 MLP는 고전적인, 완전 연결 신경망으로 볼 수 있는데 '일반적으로' 3개의 층에 sigmoid, tanh의 활성화 함수를 가진 신경망을 이야기한다. (본인의 예제에서 활성화 함수를 relu를 사용하였지만...) 여기서 DNN은 더 확장하여 순환(RNN, LSTM)을 할 수 있다던지, 완전 연결이 아니라던지, 활성화 함수가 0 또는 1이 아니라던지 등등 더욱 포괄적이고 상위적인 개념이 포함된다. 단순히 은닉 층 개수로 나눌 수는 없다. 제목은 DNN으로 거창하게 하였지만, 사실 MLP는 DNN의 하위개념이므로(...) 구현 상 큰 차이가 없다... 2022. 4. 20.
24. 딥러닝에서 데이터 표준화, 정규화가 필요한 이유 딥러닝 실행 전에 데이터 표준화(Normalization)와 정규화(Standardization)가 왜 필요할까? Kaggle 콘크리트 강도 계산(Calculate Concrete Strength) 데이터를 예시로 들어보자. 콘크리트 강도 계산 feature는 8개로 구성되어 있는데 각각 성질은 아래와 같다. Cement Component : - 시멘트의 혼합량 Blast Furnace Slag : - 고로 슬래그 미분말 함유량 (링크 참고) Fly Ash Component : - 플라이애시 혼합량(링크 참고) Water Component : - 물 혼합량 Superplasticizer Component : - 가소제 혼합량(링크 참고) Coarse Aggregate Component : - 굵은 골재 .. 2022. 4. 19.
23 - 학습 성능 개선 : Mini batch & Shuffle 구현하기 지난 시간까지 복잡한 데이터에 대한 학습은 다중 퍼셉트론(MLP)가 효율적이라는 것을 배웠고 좀 더 빠르게 수렴하기 위해 경사하강법을 Momentum, RMSprop, Adam 으로 개선하여 학습해 보았다. 이번 시간부터 '학습 성능 개선'을 주제로 어떻게 해야 좀 더 빠르고 효율적으로 학습을 할 수 있을가에 대해 여러 방법들을 알아볼 것이다. 학습 성능을 개선한다는 것은 최단 학습으로 지역 최소점에 빠지지 않고 전역 최소점에 수렴하는 방법을 찾는 것이라고 생각해도 좋을 것이다. 사실 위의 경사하강법 개선도 학습 성능 개선 방법 중 하나이다. 기본적으로 쓰여서 그렇지... 1. 아이리스 분류 풀 데이터셋 다시 살펴보기 10. 단층 퍼셉트론 을 다시 살펴보고 오자. 150개 오리지널 데이터셋을 한번 섞고(.. 2022. 2. 11.