diff --git a/bambini77/week1/answer1.md b/bambini77/Week_1/answer1.md
similarity index 100%
rename from bambini77/week1/answer1.md
rename to bambini77/Week_1/answer1.md
diff --git a/bambini77/week1/week 1.md b/bambini77/Week_1/week 1.md
similarity index 100%
rename from bambini77/week1/week 1.md
rename to bambini77/Week_1/week 1.md
diff --git a/bambini77/week1/week1 img/Untitled 1.png b/bambini77/Week_1/week1 img/Untitled 1.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 1.png
rename to bambini77/Week_1/week1 img/Untitled 1.png
diff --git a/bambini77/week1/week1 img/Untitled 10.png b/bambini77/Week_1/week1 img/Untitled 10.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 10.png
rename to bambini77/Week_1/week1 img/Untitled 10.png
diff --git a/bambini77/week1/week1 img/Untitled 11.png b/bambini77/Week_1/week1 img/Untitled 11.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 11.png
rename to bambini77/Week_1/week1 img/Untitled 11.png
diff --git a/bambini77/week1/week1 img/Untitled 12.png b/bambini77/Week_1/week1 img/Untitled 12.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 12.png
rename to bambini77/Week_1/week1 img/Untitled 12.png
diff --git a/bambini77/week1/week1 img/Untitled 13.png b/bambini77/Week_1/week1 img/Untitled 13.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 13.png
rename to bambini77/Week_1/week1 img/Untitled 13.png
diff --git a/bambini77/week1/week1 img/Untitled 14.png b/bambini77/Week_1/week1 img/Untitled 14.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 14.png
rename to bambini77/Week_1/week1 img/Untitled 14.png
diff --git a/bambini77/week1/week1 img/Untitled 15.png b/bambini77/Week_1/week1 img/Untitled 15.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 15.png
rename to bambini77/Week_1/week1 img/Untitled 15.png
diff --git a/bambini77/week1/week1 img/Untitled 16.png b/bambini77/Week_1/week1 img/Untitled 16.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 16.png
rename to bambini77/Week_1/week1 img/Untitled 16.png
diff --git a/bambini77/week1/week1 img/Untitled 17.png b/bambini77/Week_1/week1 img/Untitled 17.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 17.png
rename to bambini77/Week_1/week1 img/Untitled 17.png
diff --git a/bambini77/week1/week1 img/Untitled 18.png b/bambini77/Week_1/week1 img/Untitled 18.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 18.png
rename to bambini77/Week_1/week1 img/Untitled 18.png
diff --git a/bambini77/week1/week1 img/Untitled 19.png b/bambini77/Week_1/week1 img/Untitled 19.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 19.png
rename to bambini77/Week_1/week1 img/Untitled 19.png
diff --git a/bambini77/week1/week1 img/Untitled 2.png b/bambini77/Week_1/week1 img/Untitled 2.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 2.png
rename to bambini77/Week_1/week1 img/Untitled 2.png
diff --git a/bambini77/week1/week1 img/Untitled 20.png b/bambini77/Week_1/week1 img/Untitled 20.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 20.png
rename to bambini77/Week_1/week1 img/Untitled 20.png
diff --git a/bambini77/week1/week1 img/Untitled 3.png b/bambini77/Week_1/week1 img/Untitled 3.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 3.png
rename to bambini77/Week_1/week1 img/Untitled 3.png
diff --git a/bambini77/week1/week1 img/Untitled 4.png b/bambini77/Week_1/week1 img/Untitled 4.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 4.png
rename to bambini77/Week_1/week1 img/Untitled 4.png
diff --git a/bambini77/week1/week1 img/Untitled 5.png b/bambini77/Week_1/week1 img/Untitled 5.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 5.png
rename to bambini77/Week_1/week1 img/Untitled 5.png
diff --git a/bambini77/week1/week1 img/Untitled 6.png b/bambini77/Week_1/week1 img/Untitled 6.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 6.png
rename to bambini77/Week_1/week1 img/Untitled 6.png
diff --git a/bambini77/week1/week1 img/Untitled 7.png b/bambini77/Week_1/week1 img/Untitled 7.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 7.png
rename to bambini77/Week_1/week1 img/Untitled 7.png
diff --git a/bambini77/week1/week1 img/Untitled 8.png b/bambini77/Week_1/week1 img/Untitled 8.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 8.png
rename to bambini77/Week_1/week1 img/Untitled 8.png
diff --git a/bambini77/week1/week1 img/Untitled 9.png b/bambini77/Week_1/week1 img/Untitled 9.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled 9.png
rename to bambini77/Week_1/week1 img/Untitled 9.png
diff --git a/bambini77/week1/week1 img/Untitled.png b/bambini77/Week_1/week1 img/Untitled.png
similarity index 100%
rename from bambini77/week1/week1 img/Untitled.png
rename to bambini77/Week_1/week1 img/Untitled.png
diff --git a/bambini77/Week_2/answer2.md b/bambini77/Week_2/answer2.md
new file mode 100644
index 0000000..41a4bf9
--- /dev/null
+++ b/bambini77/Week_2/answer2.md
@@ -0,0 +1,34 @@
+# [핸즈온머신러닝] 2주차
+
+
+## Non-Linearity라는 말의 의미와 그 필요성은?(3줄 분량으로 작성해주세요)
+
+- 선형적인 함수는 일차 함수의 형태이며 비례 관계에 있는것이며 그렇지 않으면 비선형적이다고 한다. 층들 사이에 비선형성을 추가해줘야 한다. 왜냐하면 선형함수들을 여러개 연결해도 하나의 선형함수로 합쳐질 수 있기 때문에 층을 많이 쌓아도 하나의 층과 동일한 효과를 내게 된다. 비선형인 활성함수들을 선형 layer들 사이에 추가하여 층이 층이 합쳐지지 않게해준다.
+
+
+## 미니배치를 작게 할때의 장단점은?(2줄 분량으로 작성해주세요)
+
+- 배치 사이즈가 작으면 큰 배치를 사용할 때보다 일반화 성능은 좋을 수 있다 . 그렇지만 계산의 효율성이 큰 배치 사이즈를 사용할 때 보다 떨어진다.
+ 일반화 성능이 좋다는 것은?
+ trainig data의 loss값과 test data의 loss값 차이가 작다는 뜻이다.
+
+## 배치 정규화의 장점과 단점은 무엇인가요?
+
+- 모든 심층 신경망에서 배치 정규화가 성능을 크게 향상시킨다. 그레디언트 소실 문제가 크게 감소한다. 또한 가중치 초기화에 덜 민감해진다. 그러나 모델의 복잡도를 키운다는 단점이 있다. 또한 실행 시간에서도 손해를 본다.
+
+그래디언트 소실이란?
+ 신경망을 학습시키는 과정에서 네트워크의 초기 층으로 전파되는 그래디언트가 점점 줄어들어 사라지게 되는 문제로 이로 인해 네트워크의 가중치가 거의 또는 전혀 업데이트되지 않아 학습이 잘 안되는 문제가 발생한다.
+
+
+## 학습률 스케줄링이란 무엇이며, 왜 사용되나요?
+
+- 큰 학습률로 시작하고 학습 속도가 느려질 때 학습률을 낮춰 좋은 솔루션을 더 빨리 발견하는 전략을 학습률 스케줄링이라 한다. 좋은 학습률을 찾는 것은 훈련 과정에서 매우 중요한 과정이므로 적절한 학습률 찾기를 통해 과적합을 방지하고 훈련 과정을 안정적으로 진행한다.
+
+
+## 추가 질문
+
+Q. 작은 배치 사이즈를 쓰면 빠르다는건가요? 큰 배치 사이즈를 쓰면 빠르다는건가요? 하나는 작아서 빨리 모델이 순환하며 업데이트된다라고 되어있고 큰배치 사이즈는 계산효율이 빨라져 빠르다는거 같은데 헷갈리네요
+
+A. 한 에포크당 속도는 큰 배치 사이즈에서 일반적으로 더 빠르다. 큰 배치는 더 적은 수의 그래디언트 업데이트를 필요로 하므로, 한 에포크를 빠르게 처리할 수 있다.
+전체 학습 과정에서의 수렴 속도는 더 자주 모델을 업데이트하므로, 더 빠른 수렴이 가능하게 할 수 있다.
+즉, 상황에 따라 다르다.
\ No newline at end of file
diff --git a/bambini77/Week_2/week2 img/Untitled 1.png b/bambini77/Week_2/week2 img/Untitled 1.png
new file mode 100644
index 0000000..21fe298
Binary files /dev/null and b/bambini77/Week_2/week2 img/Untitled 1.png differ
diff --git a/bambini77/Week_2/week2 img/Untitled 2.png b/bambini77/Week_2/week2 img/Untitled 2.png
new file mode 100644
index 0000000..14a8ba3
Binary files /dev/null and b/bambini77/Week_2/week2 img/Untitled 2.png differ
diff --git a/bambini77/Week_2/week2 img/Untitled 3.png b/bambini77/Week_2/week2 img/Untitled 3.png
new file mode 100644
index 0000000..d5dd4e6
Binary files /dev/null and b/bambini77/Week_2/week2 img/Untitled 3.png differ
diff --git a/bambini77/Week_2/week2 img/Untitled 4.png b/bambini77/Week_2/week2 img/Untitled 4.png
new file mode 100644
index 0000000..4372ab0
Binary files /dev/null and b/bambini77/Week_2/week2 img/Untitled 4.png differ
diff --git a/bambini77/Week_2/week2 img/Untitled 5.png b/bambini77/Week_2/week2 img/Untitled 5.png
new file mode 100644
index 0000000..7ce1aa3
Binary files /dev/null and b/bambini77/Week_2/week2 img/Untitled 5.png differ
diff --git a/bambini77/Week_2/week2 img/Untitled 6.png b/bambini77/Week_2/week2 img/Untitled 6.png
new file mode 100644
index 0000000..fcaf099
Binary files /dev/null and b/bambini77/Week_2/week2 img/Untitled 6.png differ
diff --git a/bambini77/Week_2/week2 img/Untitled 7.png b/bambini77/Week_2/week2 img/Untitled 7.png
new file mode 100644
index 0000000..47bd617
Binary files /dev/null and b/bambini77/Week_2/week2 img/Untitled 7.png differ
diff --git a/bambini77/Week_2/week2 img/Untitled 8.png b/bambini77/Week_2/week2 img/Untitled 8.png
new file mode 100644
index 0000000..7437f19
Binary files /dev/null and b/bambini77/Week_2/week2 img/Untitled 8.png differ
diff --git a/bambini77/Week_2/week2 img/Untitled.png b/bambini77/Week_2/week2 img/Untitled.png
new file mode 100644
index 0000000..c9addc5
Binary files /dev/null and b/bambini77/Week_2/week2 img/Untitled.png differ
diff --git a/bambini77/Week_2/week2.md b/bambini77/Week_2/week2.md
new file mode 100644
index 0000000..d9315d4
--- /dev/null
+++ b/bambini77/Week_2/week2.md
@@ -0,0 +1,252 @@
+# 2주차 Summary
+
+생성일: December 17, 2023 1:15 AM
+주차: 2주차
+깃허브 커밋: No
+사람: 최윤창
+완료 여부: 진행 중
+
+
+
+# 10장 케라스를 사용한 인공 신경망 소개
+
+## 인공 뉴런
+
+### **퍼셉트론**
+
+- 가장 간단한 인공 신경망 구조
+- TLU라는 인공 뉴런 기반이며 입출력이 이진값이 아닌 숫자이고, 각각의 입력 연결은 가중치와 연관되어 있다.
+- TLU는 입력의 가중치 합을 계산한 뒤 계산된 합에 계단 함수를 적용하여 결과를 출력
+
+![Untitled](2%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%204f9eb77affe448bb9a78151e584bbeb9/Untitled.png)
+
+- **헤비사이드 계단 함수 / 부호 함수 (주로 사용되는 계단 함수)**
+
+ ![Untitled](2%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%204f9eb77affe448bb9a78151e584bbeb9/Untitled%201.png)
+
+- TLU는 간단한 선형 이진 분류에 사용 가능
+- 퍼셉트론은 하나의 층 안에 놓인 하나 이상의 TLU로 구성. 각각의 TLU는 모든 입력에 연결 → fully connected layer라고 불림
+- input layer는 모두 입력 뉴런으로 구성
+- 완전 연결 층의 출력 계산 : hW,b(X)=ϕ(XW+b)
+ - X : 입력 특성의 행렬을 나타냄
+ - 이 행렬의 행은 샘플, 열은 특성
+ - W : 가중치 행렬. 편향 뉴런을 제외한 모든 연결 가중치를 포함
+ - 이 행렬의 행은 입력 뉴런에 해당하고 열은 출력층에 있는 인공 뉴런에 해당
+ - b : 편향 벡터. 편향 뉴런과 인공 뉴런 사이의 모든 연결 가중치를 포함
+ - 인공 뉴런마다 하나의 편향 값이 있다.
+ - ϕ : 활성화 함수 (activation function)
+- **헤브의 규칙**
+
+ 두 뉴런이 동일한 출력을 낼 때마다 둘 사이의 연결 가중치가 증가
+
+ 퍼셉트론 학습 규칙은 오차가 감소되도록 연결을 강화시킨다
+
+ ![Untitled](2%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%204f9eb77affe448bb9a78151e584bbeb9/Untitled%202.png)
+
+- **퍼셉트론 수렴 이론**
+
+ 훈련 샘플이 선형적으로 구분될 수 있다면 이 알고리즘이 정답에 수렴한다는 것을 증명
+
+- **다층 퍼셉트론**
+
+ 퍼셉트론을 여러개 쌓아 일부 제약을 줄일 수 있다.
+
+ xor 문제를 해결 가능
+
+
+### 다층 퍼셉트론과 역전파
+
+- 다층 퍼셉트론은 입력층 하나와 은닉층이라 불리는 하나 이상의 TLU층과 마지막 출력 층으로 구성
+- 은닉층을 여러개 쌓아 올림 인공 신경망을 **심층 신경망**이라고 한다.
+- **역전파**?
+ - 후진 자동 미분 + 경사 하강법
+ - 작동 방식
+ 1. 역전파 알고리즘이 먼저 미니배치에 대한 예측을 만들고 오차를 측정(정방향계산)
+ 2. 역방향으로 각 층을 거치면서 각 연결이 오차에 기여한 정도를 측정(역방향계산)
+
+ → 연쇄 법칙 적용
+
+ 3. 오차가 감소하도록 가중치와 편향을 조정(경사 하강법)
+ - 계단 함수를 시그모이드 함수로 변경(사실 다른 활성화 함수와도 사용 가능-ReLU, tanh 함수)
+ - **활성 함수는 왜?**
+ - 선형 층 사이에 비선형함수를 포함해야 하나로 합쳐지지 않고 각 각의 층으로 나누어질 수 있음
+
+ ![Untitled](2%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%204f9eb77affe448bb9a78151e584bbeb9/Untitled%203.png)
+
+
+### 회귀를 위한 다층 퍼셉트론
+
+회귀 작업에 사용될 수 있음
+
+- 회귀 MLP의 전형적인 구조
+
+ ![Untitled](2%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%204f9eb77affe448bb9a78151e584bbeb9/Untitled%204.png)
+
+
+### 분류를 위한 다층 퍼셉트론
+
+분류 작업에 사용될 수 있음
+
+- 시그모이드 활성화 함수를 가진 하나의 출력 뉴런만 필요(출력은 0과 1사이)
+- 다층 퍼셉트론은 다중 레이블 이진 분류 문제를 쉽게 처리
+- 확률 분포를 예측해야 하므로 손실 함수에는 일반적으로 크로스 엔트로피 손실을 선택하는 것이 좋다
+- 분류 MLP의 전형적인 구조
+
+ ![Untitled](2%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%204f9eb77affe448bb9a78151e584bbeb9/Untitled%205.png)
+
+
+## 케라스로 다층 퍼셉트론 구현하기
+
+~
+
+## 신경망 하이퍼파라미터 튜닝하기
+
+조절할 하이퍼파라미터가 많다 → 어떤 조합이 주어진 문제에 최적일까?
+
+케라스 모델을 위한 하이퍼파라미터 튜닝 라이브러리인 케라스 튜너 라이브러리 사용
+
+### 은닉 층 개수 / 은닉 층의 뉴런 개수
+
+- 은닉 층이 하나인 다층 퍼셉트론이더라도 뉴런 개수가 충분하면 아주 복잡한 함수도 모델링할 수 있음
+- 하지만 복잡한 문제에서는 심층 신경망이 파라미터 효율성이 좋다 → 적은 수 의 뉴런을 사용하므로 동일한 양의 훈련 데이터에서 더 높은 성능을 낼 수 있다.
+- 층의 개수와 뉴런의 개수는 과대적합이 시작되기 전까지 점진적으로 뉴런 수를 늘릴 수 있다. → 일반적으로는 층의 수를 늘리는 쪽이 이득이 많다.
+
+### 학습률, 배치 크기, 하이퍼파라미터
+
+- **학습률**
+ - 일반적으로 최적의 학습률은 최대 학습률의 절반
+ - 매우 낮은 학습률에서 시작해서 점진적으로 매우 큰 학습률까지 수백 번 반복하여 모델을 훈련 → 반복마다 일정한 값을 학습률에 곱한다
+ - 최적의 학습률은 손실이 상승하는 지점보다 조금 아래에 있을것
+- **옵티마이저**
+ - 미니배치 경사하강법보다 더 좋은 옵티마이저를 선택하는 것도 매우 중요
+- **배치 크기**
+ - 큰 배치 크기를 사용
+ - GPU같은 하드웨어 가속기를 효율적으로 활용
+ - 훈련 초기 종종 불안정하게 훈련될 수 있음 → 학습률 예열을 사용해 큰 배치 크기를 시도/ 훈련이 불안정하다면 작은 배치 크기를 사용해본다
+- **활성화 함수**
+ - 일반적으로 ReLU가 좋은 기본값
+- **반복 횟수**
+ - 조기 종료를 사용
+
+# 11장 심층 신경망 훈련
+
+## gradient 소실과 폭주
+
+### 글로럿과 He 초기화
+
+### 고급 활성화 함수
+
+- ReLU에 문제점이 있다
+
+ → 훈련하는 동안 일부 뉴런이 0 이외의 값을 출력하지 않는다
+
+- LeakyReLU
+ - LeakyReLUα(z)=max(αz,z)
+
+ ![Untitled](2%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%204f9eb77affe448bb9a78151e584bbeb9/Untitled%206.png)
+
+ 기울기를 0이 아닌 다른 작은 수로 설정하여 0이 되지 않게 함.
+
+- ELU
+
+ 훈련 시간이 줄고 신경망의 테스트 세트 성능도 더 높았다
+
+ 다만 지수함수를 사용하므로 계산이 느리다
+
+
+### 배치 정규화
+
+- 그레디언트 소실과 폭주 문제를 해결하기 위한 배치 정규화 기법을 제안
+- 각 층에서 활성화 함수를 통과하기 전이 나 후에 모델에 연산을 추가
+ - 입력을 원점에 맞추고 정규화 한 다음, 각 층에서 2개의 새로운 피라미터로 결괏값의 스케일을 조정하고 이동
+ - 평균은 0으로 분산은 스케일 조정한다
+- 훈련이 끝난 후 전체 훈련 세트를 신경망에 통과시켜 배치 정규화 층의 각 입력에 대한 평균과 표준편차를 계산하는 것이다.
+- 대부분 배치 정규화 구현은 층의 입력 평균과 표준편차의 이동 평균을 사용해 훈련하는 동안 최종 통계를 추정한다.
+- 배치 정규화 층마다 네 개의 파라미터 벡터가 학습된다.
+ - **γ**(출력 스케일 벡터)와 **β** ( 출력 이동 벡터)는 일반적인 역전파를 통해 학습된다.
+ - **μ** (최종 입력 평균 벡터)와 **σ** (최종 입력 표준편차 벡터)는 지수 이동 평균을 사용하여 추정된다.
+ - **μ**와 **σ**는 훈련하는 동안 추정되지만 훈련이 끝난 후에 사용된다
+- 장점
+ - 그레디언트 소실 문제가 크게 감소
+ - 가중치 초기화 덜 민감해진다
+ - 규제와 같은 역할을 하여 다른 규제의 필요성을 줄여준다
+- 단점
+ - 모델의 복잡도를 키운다
+ - 실행 시간면에서 손해(층마다 추가되는 계산 시간)
+
+### gradient clipping
+
+- 역전파될 때 특정 임곗값을 넘어서지 못하게 그레디언트를 잘라낸다
+ - 배치 정규화를 사용하기 힘든 순환 신경망에서 사용
+
+## 사전 훈련된 층 재사용하기
+
+- 비슷한 유형의 문제를 처리한 신경망이 있다면 최상위 층을 제외하고 대부분의 층을 재사용할 수 있다.(전이학습)
+- 보통 원본 모델의 출력 층을 바꾼다. 비슷한 원본 모델의 하위 은닉층이 훨씬 유용하다.
+
+![Untitled](2%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%204f9eb77affe448bb9a78151e584bbeb9/Untitled%207.png)
+
+- 방법
+ 1. 재사용하는 층을 모두 동결하고 훈련 및 성능 평가 (즉, 경사 하강법으로 가중치가 고정된 상태로 남도록 훈련되지 않는 가중치로 만든다)
+ 2. 맨 위에 있는 한두개의 은닉 층의 동결을 해체하고 역전파를 통해 가중치 조정하여 성능 향상 확인
+
+ → 훈련 데이터가 많을수록 많은 층의 동결 해제 가능
+
+ → 재사용 층의 동결을 해제할 때는 학습률을 줄이는것이 좋음
+
+ 3. 좋은 성능이 안나오거나 훈련 데이터가 적다면 상위 은닉 층들을 제거하고 남은 은닉 층을 다시 동결
+
+ → 적절한 개수의 은닉 층을 찾을 때까지 반복
+
+ → 훈련 데이터가 아주 많다면 은닉 층 제거 대신 다른 것으로 바꾸거나 은닉층 추가도 가능
+
+
+### 비지도 사전 훈련
+
+- 풀어야 할 문제가 복잡하고 재사용할 수 있는 비슷한 모델이 없으며 레이블된 훈련 데이터가 적을때 비지도 사전 훈련이 좋다.
+- 레이블되지 않은 훈련 데이터를 많이 모을 수 있다면 이를 사용하여 오토인코더나 생성적 적대 신경망과 같은 비지도 학습 모델 훈련 가능
+ - 오토인코더나 GAN판별자의 하위층을 재사용하고 그 위에 새로운 착업에 맞는 출력층 추가
+ - 그 다음 지도학습으로 최종 네트워크를 세밀하게 튜닝
+
+
+### 보조 작업에서 사전 훈련
+
+- 레이블된 훈련 데이터가 많지 않다면 레이블된 훈련 데이터를 쉽게 얻거나 생성할 수 있는 보조 작업에서 첫 번째 신경망을 훈련한다
+
+ → 이 신경망의 하위층을 실제 작업을 위해 재사용
+
+
+## 고속 옵티마이저
+
+### 모멘텀 최적화
+
+### ****네스테로프 가속 경사****
+
+- AdaGrad
+- RMSProp
+- Adam, Nadam
+
+### 학습률 스케줄링
+
+![Untitled](2%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%204f9eb77affe448bb9a78151e584bbeb9/Untitled%208.png)
+
+- 큰 학습률로 시작하고 학습 속도가 느려질 때 학습률을 낮춰 좋은 솔루션을 더 빨리 발견
+- 거듭제곱 기반 스케줄링
+- 지수기반 스케줄링
+- 구간별 고정 스케줄링
+- 성능 기반 스케줄링
+- 1사이클 스케줄링
+
+## 규제를 사용해 과대적합 피하기
+
+### l1과 l2규제
+
+### 드롭아웃
+
+- 각 뉴런은 p의 확률로 드롭아웃 되게 된다.(p는 10-50%사이)
+- 몬테 카를로 드롭아웃
+
+### 맥스-노름 규제
\ No newline at end of file
diff --git a/bambini77/Week_3/flower_classification.md b/bambini77/Week_3/flower_classification.md
new file mode 100644
index 0000000..7d4aa16
--- /dev/null
+++ b/bambini77/Week_3/flower_classification.md
@@ -0,0 +1,96 @@
+# 4주차 Summary
+
+
+## 베이스라인에서 바꾼것
+
+```python
+def data_augment(image, label):
+# Thanks to the dataset.prefetch(AUTO)
+# statement in the next function (below), this happens essentially
+# for free on TPU. Data pipeline code is executed on the "CPU"
+# part of the TPU while the TPU itself is computing gradients.
+image = tf.image.random_flip_left_right(image)
+image = tf.image.random_flip_up_down(image)
+image = tf.image.random_brightness(image, max_delta=0.1)
+image = tf.image.random_saturation(image, lower=0.7, upper=1.3)
+image = tf.image.rot90(image, k=tf.random.uniform(shape=[], minval=0, maxval=4, dtype=tf.int32))
+#image = tf.image.random_saturation(image, 0, 2)
+return image, label
+```
+
+data augementation을 추가적으로 여러가지를 추가해주었다.
+
+```python
+with strategy.scope():
+pretrained_model = tf.keras.applications.DenseNet201(
+weights='imagenet',
+include_top=False ,
+input_shape=[*IMAGE_SIZE, 3]
+)
+#vgg 말고 다른거 해보기
+pretrained_model.trainable = False
+#batch normalization 추기 + True로 바꿔보기
+for layer in pretrained_model.layers[-3:]:
+layer.trainable = True
+#dropout 추가
+model = tf.keras.Sequential([
+# To a base pretrained on ImageNet to extract features from images...
+pretrained_model,
+# ... attach a new head to act as a classifier.
+tf.keras.layers.GlobalAveragePooling2D(),
+tf.keras.layers.BatchNormalization(),
+tf.keras.layers.Dense(512, activation='relu',kernel_regularizer=tf.keras.regularizers.l2(0.001)),
+tf.keras.layers.BatchNormalization(),
+tf.keras.layers.Dropout(rate=0.2),
+tf.keras.layers.Dense(len(CLASSES), activation='softmax')
+])
+```
+
+1. pretraidned_model에서 마지막 3개 layer를 훈련 가능하게 바꾸어주었다
+2. 배치 정규화층을 추가하였다
+3. dense layer층을 추가하였다 (여기에 l2규제를 추가해주었다). 이후에 배치 정규화 layer을 하나 더 추가 하였다
+4. dropout을 추가하였다.
+
+```python
+model.compile(
+optimizer='nadam',
+loss = 'sparse_categorical_crossentropy',
+metrics=['sparse_categorical_accuracy'],
+)
+#optimizer lion 사용 찾아보기
+model.summary()
+```
+
+optimizer를 adam에서 nadam으로 변경하였다
+
+```python
+def exponential_lr(epoch,
+start_lr = 0.0001, min_lr = 0.0001, max_lr = 0.0005,
+rampup_epochs = 20, sustain_epochs = 0,
+exp_decay = 0.8):
+```
+
+rampup_epochs를 20으로 변경하였다
+
+```python
+early_stop = EarlyStopping(
+monitor='val_loss', # 성능을 모니터링할 지표
+patience=5, # 성능 향상이 없는 에포크를 얼마나 기다릴 것인지
+verbose=1, # 얼리 스톱핑이 시작될 때 로그를 출력할지 여부
+restore_best_weights=True # 가장 좋은 모델의 가중치를 복원할 것인지
+)
+```
+
+epoch 값을 100으로 맞춘뒤 earlystopping을 걸어주었다
+
+![Untitled](4%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%20e88458b5f6f0483d98a94fa645acd671/Untitled.png)
+
+최고 f1_score ⇒ 0.865
+
+## 알게된 점?
+
+추가적으로 layer를 추가할수록 오히려 점수 떨어짐
+
+lr 맞추기가 굉장히 힘듦 → 최적?
+
+전이학습을 통해 진행되는데 pretrained layer가 훈련이 안되게 False로 맞춰져 있는데 일부를 통해 True로 변경
diff --git a/bambini77/Week_3/flower_classification/Untitled.png b/bambini77/Week_3/flower_classification/Untitled.png
new file mode 100644
index 0000000..cb2d936
Binary files /dev/null and b/bambini77/Week_3/flower_classification/Untitled.png differ
diff --git a/bambini77/Week_3/week3.md b/bambini77/Week_3/week3.md
new file mode 100644
index 0000000..9e7a36b
--- /dev/null
+++ b/bambini77/Week_3/week3.md
@@ -0,0 +1,174 @@
+# 3주차 Summary
+
+생성일: December 17, 2023 1:15 AM
+주차: 3주차
+깃허브 커밋: No
+사람: 최윤창
+완료 여부: 진행 중
+
+
+
+# 12장 텐서플로를 사용한 사용자 정의 모델과 훈련
+
+## 텐서플로 훑어보기
+
+텐서플로는 강력한 수치 계산용 라이브러리
+
+- 핵심 구조는 넘파이와 매우 비슷하지만 GPU를 지원한다.
+- (여러 장치와 서버에 대해서) 분산 컴퓨팅을 지원한다.
+- 일종의 JIT 컴파일러를 포함한다. 속도를 높이고 메모리 사용량을 줄이기 위해 계산을 최적화한다. 이를 위해 파이썬 함수에서 계산 그래프를 추출한 다음 최적화하고 효율적으로 실행한다.
+- 계산 그래프는 플랫폼에 중립적인 포맷으로 내보낼 수 있다.
+- 텐서플로는 자동 미분 기능과 RMSProp, Nadam 같은 고성능 옵티마이저를 제공하므로 모든 종류의 손실 함수를 최소화할 수 있다
+
+## 넘파이처럼 텐서플로 사용하기
+
+텐서는 일반적으로 다차원 배열 (넘파이 ndarray와 비슷)
+
+- tf.constant()로 텐서를 만듦
+ - 크기와 데이터 타입 가진다
+ - 인덱스 참조가 넘파이와 매우 비슷하게 작동
+ - 모든 종류의 텐서 연산이 가능
+ - 스칼라값 가질 수 있음
+ - 기본수학 연산과 넘파이에서 볼 수 있는 대부분의 연산 제공
+- 넘파이 배열로 텐서 만들고 그 반대도 가능. 서로 연산 적용도 가능
+- 타입 변환은 성능을 크게 감소시킬 수 있으므로 자동으로 수행하지 않는다. 필요하다면 tf.cast()함수 사용
+- tf.Tensor는 변경이 불가능한 객체 → 일반적인 텐서로는 역전파로 변경되어야 하는 신경망의 가중치 구현 x
+
+ → tf.Variable() 사용
+
+- **tf.Variable()**
+ - assign() 메서드를 사용하여 변숫값 변경
+- 희소 텐서, 텐서 배열, 래그드 텐서, 문자열 텐서, 집합, 큐와 같은 여러 데이터 구조 지원
+
+## 사용자 정의 모델과 훈련 알고리즘
+
+### 사용자 정의 손실 함수
+
+- 모델 저장 easy, 모델 로드할 때는 함수 이름과 실제 함수를 매핑한 딕셔너리를 전달
+- 사용자 정의 객체를 포함한 모델을 로드할 때는 그 이름과 객체를 매핑해야 한다.
+
+### 활성화 함수, 초기화, 규제, 제한을 커스터마이징하기
+
+```python
+def my_softplus(z):
+return tf.math.log(1.0 + tf.exp(z))
+
+def my_glorot_initializer(와ape, dtype=tf.float32):
+stddev = tf.sqrt(2. / (shape[0] + shape[l]))
+return tf.random.normal(shape, stddev=stddev, dtype=dtype)
+
+def my_ll_regularizer(weights):
+return tf.reduce_sum(tf.abs(0.01 * weights))
+
+def my_positive_weights(weights): # tf.nn.relu(veights)와 반환값이 같습니다•
+return tf.where(weights < 0., tf•zeros_like(weights), weights)
+```
+
+만들어진 사용자 정의 함수는 보통의 함수와 동일하게 사용
+
+### 사용자 정의 지표
+
+- **손실 vs 지표**
+ - **손실**은 모델을 훈련하기 위해 경사 하강법에서 사용되므로 미분 가능해야 하고 그레디언트가 모든 곳에서 0이 아님
+ - **지표는** 모델을 평가할 때 사용. 미분이 가능하지 않거나 모든 곳에서 그레디언트가 0이어도 괜찮다. (주로 평균 절댓값 오차나 평균 제곱 오차를 많이 사용)
+ - 대부분 사용자 손실 함수를 만드는 것과 사용자 지표 함수를 만드는 것은 동일
+- **스트리밍 지표**
+
+### 사용자 정의 층
+
+- 가중치가 없는 층 (ex>tf.keras.layers.Flatten이나 tf.keras.layers.ReLU)
+ - 파이썬 함수를 만든 후 tf.keras.layers.Lambda층으로 감싸기
+- 훈련과 테스트에서 다르게 작동하는 층이 필요하다면 call()메서드에 training 매개변수를 추가하여 훈련인지 테스트인지 결정
+
+### 사용자 정의 모델
+
+![Untitled](3%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%20ac3a3a65235840eb8caabef7621f320a/Untitled.png)
+
+위와 같은 예제 모델
+
+keras.Model 클래스를 상속하여 생성자에서 층과 변수를 만들고 모델이 해야 할 작업을 call() 메서드에 구현
+
+잔차 블록?
+
+### 모델 구성 요소에 기반한 손실과 지표
+
+- 은닉 층의 가중치나 활성화 함수 등과 같이 모델의 구성 요소에 기반한 손실을 정의해야 할 경우도 있음
+- 모델 구성 요소에 기반한 손실을 정의하고 계산하여 add_loss() 메서드에 그 결과를 전달
+
+### 자동 미분으로 그레디언트 계산하기
+
+- 각 파라미터가 매우 조금 바뀔 때 함수의 출력이 얼마나 변하는지 측정하여 도함수의 근삿값을 계산하는 것 → 대규모 신경망에서는 적용하기 어려움
+
+```python
+def f(w1, w2):
+ return 3 * w1 ** 2 + 2 * w1 * w2
+
+w1, w2 = 5, 3; eps = 1e-6
+# 각 파라미터가 바뀔 때마다 함수의 출력이 얼마나 변하는지 측정하여 도함수의 근삿값을 계산함
+print((f(w1 + eps, w2) - f(w1, w2)) / eps) # 36.000003007075065
+print((f(w1, w2 + eps) - f(w1, w2)) / eps) # 10.000000003174137
+```
+
+- 후진 모드 자동 미분을 사용
+
+ex. 변수 w1, w2 정의 tf.GradientTape 블록을 만들어 이 변수 와 관련된 모든 연산을 자동으로 기록
+
+```python
+w1, w2 = tf.Variable(5.), tf.Variable(3.)
+with tf.GradientTape() as tape:
+ z = f(w1, w2)
+
+gradients = tape.gradient(z, [w1, w2])
+# tape.gradient(z, [w1, w2])는 출력 z에 대한 가중치 w1과 w2의 그래디언트를 계산
+# z가 w1과 w2에 대해 얼마나 민감한지를 나타내는 값입니다.
+gradients
+# [,
+# ]
+```
+
+- 기본적으로 테이프는 변수가 포함된 연산만을 기록. 변수가 아닌 다른 객체에 대한 그레디언트는 None이 반환.
+
+ 모든 연산을 기록하도록 강제 → watch()함수 사용
+
+- tf.stop_gradient()함수 → 신경만의 일부분에 그레디언트가 역전파되지 않도록 막을때 사용.
+- 안정적인 함수에도 수치적으로 불안정한 그레디언트 존재할 수 있음
+
+ → 자동 미분을 사용하지 않고 그레디언트 계산을 위해 사용할 식을 텐서플로에 알려준다
+
+ 이를 위해 @tf.custom_gradient 데코레이터를 사용하고
+
+
+### 사용자 정의 훈련 반복
+
+## 텐서플로 함수와 그래프
+
+![Untitled](3%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%20ac3a3a65235840eb8caabef7621f320a/Untitled%201.png)
+
+![Untitled](3%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%20ac3a3a65235840eb8caabef7621f320a/Untitled%202.png)
+
+![Untitled](3%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%20ac3a3a65235840eb8caabef7621f320a/Untitled%203.png)
+
+![Untitled](3%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%20ac3a3a65235840eb8caabef7621f320a/Untitled%204.png)
+
+![Untitled](3%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%20ac3a3a65235840eb8caabef7621f320a/Untitled%205.png)
+
+batch normalization 추가
+
+![Untitled](3%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%20ac3a3a65235840eb8caabef7621f320a/Untitled%206.png)
+
+배치 정규화 2개 추가 → f1 0.518
+
+![Untitled](3%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%20ac3a3a65235840eb8caabef7621f320a/Untitled%207.png)
+
+배치정규화 하나 빼고 드롭아웃 추가 → f1 0.514
+
+![Untitled](3%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%20ac3a3a65235840eb8caabef7621f320a/Untitled%208.png)
+
+상위 레이어 일부 훈련 가능하게 설정 → f1 0.525
+
+![Untitled](3%E1%84%8C%E1%85%AE%E1%84%8E%E1%85%A1%20Summary%20ac3a3a65235840eb8caabef7621f320a/Untitled%209.png)
+
+l2규제 추가 f1→ 0.554
\ No newline at end of file
diff --git a/bambini77/Week_3/week3_img/Untitled 1.png b/bambini77/Week_3/week3_img/Untitled 1.png
new file mode 100644
index 0000000..50d3d7c
Binary files /dev/null and b/bambini77/Week_3/week3_img/Untitled 1.png differ
diff --git a/bambini77/Week_3/week3_img/Untitled 2.png b/bambini77/Week_3/week3_img/Untitled 2.png
new file mode 100644
index 0000000..2b3bb9a
Binary files /dev/null and b/bambini77/Week_3/week3_img/Untitled 2.png differ
diff --git a/bambini77/Week_3/week3_img/Untitled 3.png b/bambini77/Week_3/week3_img/Untitled 3.png
new file mode 100644
index 0000000..5e488ab
Binary files /dev/null and b/bambini77/Week_3/week3_img/Untitled 3.png differ
diff --git a/bambini77/Week_3/week3_img/Untitled 4.png b/bambini77/Week_3/week3_img/Untitled 4.png
new file mode 100644
index 0000000..33bbdeb
Binary files /dev/null and b/bambini77/Week_3/week3_img/Untitled 4.png differ
diff --git a/bambini77/Week_3/week3_img/Untitled 5.png b/bambini77/Week_3/week3_img/Untitled 5.png
new file mode 100644
index 0000000..4b8e53c
Binary files /dev/null and b/bambini77/Week_3/week3_img/Untitled 5.png differ
diff --git a/bambini77/Week_3/week3_img/Untitled 6.png b/bambini77/Week_3/week3_img/Untitled 6.png
new file mode 100644
index 0000000..d2bde7e
Binary files /dev/null and b/bambini77/Week_3/week3_img/Untitled 6.png differ
diff --git a/bambini77/Week_3/week3_img/Untitled 7.png b/bambini77/Week_3/week3_img/Untitled 7.png
new file mode 100644
index 0000000..edcfdd7
Binary files /dev/null and b/bambini77/Week_3/week3_img/Untitled 7.png differ
diff --git a/bambini77/Week_3/week3_img/Untitled 8.png b/bambini77/Week_3/week3_img/Untitled 8.png
new file mode 100644
index 0000000..d1ef99a
Binary files /dev/null and b/bambini77/Week_3/week3_img/Untitled 8.png differ
diff --git a/bambini77/Week_3/week3_img/Untitled 9.png b/bambini77/Week_3/week3_img/Untitled 9.png
new file mode 100644
index 0000000..b0b5c81
Binary files /dev/null and b/bambini77/Week_3/week3_img/Untitled 9.png differ
diff --git a/bambini77/Week_3/week3_img/Untitled.png b/bambini77/Week_3/week3_img/Untitled.png
new file mode 100644
index 0000000..c98bfbc
Binary files /dev/null and b/bambini77/Week_3/week3_img/Untitled.png differ