# Epoch

어머 얘 우리집 애랑 너무 닮았다~
0. 들어가며 고양이. 귀엽다. 강아지. 역시 귀엽다. 마음껏 사랑을 표현할 수 있는 우리 인간들의 영원할 반려 개체들. 사진도 마음껏 찍어놓을 수 있다. 동거묘, 동거견이 있을 경우, 우리들의 폰 갤러리는 그들의 사진과 사랑으로 가득할 것이다. 그러다 문득, 우리의 동거묘, 동거견과 비슷하게 생긴 친구들이 있는지 알아보고 싶은 마음이 생긴다. 방법은 간단하다. 구글 이미지 검색창에 사진 한 장 띡 업로드해주면 바로 우리들의 구글구글이 그와 유사한 사진들을 뿅뿅 찾아다 준다. 그런데 사진 검색은 어떤 과정을 통해 이뤄지는 것일까? 갑자기 궁금증이 생겨난다. 사진 검색의 아이디어의 핵심은 간단(?)하다. 사진을 수치화하는 것이다. 무수히 많은 양의 사진들을 미리 수치화해놓고, 내가 검색창에 올려놓고 싶어하는 사진 또한 수치화한 후, 미리 수치화해놓은 무수히 많은 양의 사진들과 쭉~ 비교해보고 그 중 가장 유사한 수치값을 가지고 있는 사진을 뽑아다주면 된다. _와~ 정말 간

Keras(케라스)_mnist dataset 활용
💡 Keras란? 파이썬으로 구현된 high-level deep learning API이다. high-level은 추상화 레벨이 높다는 것으로 딥러닝 모델에 적합하다. 또한 쉬운 사용법과 간단한 문법, 빠른 설계가 가능하다. 케라스는 위와 같이 x값 input되었을때, 예측된 y값과 실제 y값을 비교하고 손실 점수에 따라 최적의 값을 찾는 프레임워크로 활용된다. overfitting : 학습 데이터를 과하게 공급하여 학습시켰을 때 발생하는 에러 underfitting : 학습 데이터를 부족하게 공급하여 학습시켰을 떄 발생하는 에러 ✔️ 파이썬으로 Keras 프레임워크를 활용해 데이터를 분석하고 학습시키는 딥러닝 과정을 구현할 수 있다. !

[ML] Epoch, Iteration, Batch Size 개념
1. Batch Size 모델 학습 중 parameter를 업데이트할 때 사용할 데이터의 개수 Batch size만큼의 데이터를 활용해 loss function을 계산한 후 parameter update 2. Iteration (step) 전체 데이터셋에 대한 Batch의 개수 3. Epoch 전체 데이터셋을 학습한 횟수 Training Data를 모두 사용했을 때의 횟수 4. 정리 의 개수 : 2000 : 200 : 10 >### Reference https://wikidocs.net/55580 https://heytech.tistory.com/386
배치사이즈(Batch size)와 에폭(Epoch)
배치사이즈(Batch size) 배치사이즈란, 한 번에 모델이 학습하는 데이터 샘플의 개수를 의미합니다. 학습 데이터셋이 매우 클 경우, 전체 데이터셋을 한 번에 모델에 넣어 학습하는 것은 메모리와 게산적인 측면에서 불가능할 수 있습니다. 이러한 경우, 데이터셋을 작은 단위로 나누어 모델에 입력하게 되는데, 이때 단위를 배치라고 합니다. 예를 들어, 1000개의 학습 데이터가 있다고 합시다. 배치 사이즈가 100이라면 전체 데이터셋을 10개의 배치로 나누어 모델에 입력하게 됩니다. 각 배치는 100개의 데이터 샘플을 포함하므로, 모델은 100개의 데이터 샘플을 처리한 후에 가중치를 업데이트 합니다. 인공지능 모델은 각 배치사이즈마다 가중치와 편향을 업데이트 합니다. 에폭(Epoch) 에폭(Epoch)란, 전체 학습 데이터셋을 모델이 한 번 학습하는 것을 의미합니다. 따라서 1 에폭은 전체 데이터셋을 한 번 사용하여 학습한 것입니다. 예를들어, 1000개의

[혼공머신] 7-1. 인공 신경망
Intro. 럭키백으로 대박 친 한빛마켓! 이젠 패션 시장까지 진출하기로 하고, 이번에도 럭키백 이벤트를 진행하기로 결정! (생선 럭키백은 무게, 길이 등의 정형 데이터로 했다면, 이번에 패션 럭키백은 이미지 픽셀을 사용할 거임.) 홍 선배🗣️ "생선 럭키백에 썼던 로지스틱 회귀 알고리즘보다 정확도를 높일 순 없을까..." 1. 패션 MNIST 데이터셋 딥러닝의 고전적인 예제 데이터셋으로, 딥러닝 라이브러리 내에 기본 내장되어 있음! 'MNIST' 데이터는 원래 손으로 쓴 0~9의 이미지인데, 이건 '패션 MNIST'라서 10종류의 패션 아이템(이미지)으로 구성되어있음. 데이터 가져오기 keras의 .load_data()함수는 훈련/테스트 세트 나눠서 데이터를 불러와 줌. 
Thread, Unit of execution, Scheduling
실행의 단위(unit of execution) 프로세스 CPU 점유 프로세스는 독립적인 자원을 할당받고 스케줄링을 통해서 일정 시간 CPU를 사용할 수 있는 시간을 할당받는다. 멀티태스킹 방식 프로세스는 일정시간동안 작업을 실행할 수 있는 시간을 할당받는다. 이 시간동안 프로세스가 아닌 스레드가 실제 CPU를 점유하여 사용하게 된다. 그래서 스레드를 실행의 단위(unit of execution) 라고 부른다. 스레드 스케줄링 — First Come First Serve 
[딥러닝] epoch, batch size, iteration
입사 테스트 시험 문제로 batch size가 나왔다. 딥페이크로 졸업 프로젝트 할 때랑, 작년에 실험 계획서+실험 준비할 때가 생각났다. 얕고 넓은 내 지식... 자꾸 헷갈려-_- 잘 정리해주신 분 꺼 보고 기록해두기. [epoch] : 전체 트레이닝셋이 신경망을 통과한 횟수 ex) 1 에폭은 트레이닝셋이 하나의 신경망에 적용되어 순전파와 역전파를 통해 신경망을 한번 통과했다는 것을 의미 [batch_size] : 전체 트레이닝 데이터셋을 여러 작은 그룹으로 나눴을 때 하나의 소그룹에 속하는 데이터 수 \> 전체 트레이닝셋을 작게 나누는 이유는 트레이닝 데이터를 통째로 신경망에 넣으면 비효율적인 리소스 사용으로 학습 시간이 오래걸리기 때문 [iteration] : 1 에폭을 마치는데 필요한 미니배치 개수, (1 에폭을 마치는데 필요한 파라미터 업데이트 횟수) 각 미니배치 마다 파라미터 업데이트가 한번씩 진행되므로 iteration은 파라미터 업데이트 횟수이자 미니배치 개수
📌 배치 사이즈(batch size), 에포크(epoch), 반복(iteration)의 차이는?
> 배치는 메모리에서 CPU에 올릴 수 있는 최대 데이터(이미지) 양 > 에포크는 모델 훈련 반복 횟수 > > if 배치 사이즈가 너무 크면 아래의 문제가 발생 학습 속도가 느려짐 메모리 부족 문제 -> 배치 사이즈를 줄여서 많은 배치로 나눠 훈련시키는게 좋음 if 배치 사이즈가 너무 작으면 아래의 문제가 발생 적은 샘플로 가중치가 자주 업데이트 되어 불안정하게 훈련됨 그래서 배치 사이즈를 바꿔가면서 효율적으로 훈련되는 경우를 찾아야함. 1. 사전적 의미 > batch > > > > (일괄적으로 처리되는) 집단, 무리 > 한 회분(한 번에 만들어 내는 음식기계 등의 양) > (일괄 처리를 위해) 함께 묶다 > > > epoch > > > > (중요한 사건·변화들이 일어난) 시대 (=era) > > > iteration > > > > (계산·컴퓨터 처리 절차의) 반복
Batch size, Mini batch, Epoch
Prologue 기본 중에 기본. 모델학습을 처음 시도할 때 'tiny dataset으로 해보는 거고 사용자가 적절히 정해주는 건데 내가 적절히 해주면 얘도 눈치껏 알아먹겠지' 이런 식으로 접근했던 게 일주일치 고생으로 돌아왔다 하하하. 역시 기본기가 탄탄해야 한다. 렛츠고. 전체 데이터 5000개를 batch_size 250, mini batch 20(간혹 어떤 모델에서는 steps of epoch이렇게 표현하는데 개인적으로 이 표현이 더 와닿는다), epoch 300으로 학습을 한다고 할 때 모델이 어떻게 학습하는지 알아보자. 5000개 데이터 중에서 250개씩 20개의 mini batch를 만들어 놓는다. 모델이 1번 mini batch부터 20번 mini batch까지 한 번씩 쓱보면 1 epoch. 이때 parameter 업데이트는 mini batch 단위로 일어난다. 업데이트 단위는 iteration이라고 부른다. 그래서 batch size에 의해 mini ba