diff --git a/suhyeonx/Week_1/answer1.md b/suhyeonx/Week_1/answer1.md
new file mode 100644
index 0000000..102733b
--- /dev/null
+++ b/suhyeonx/Week_1/answer1.md
@@ -0,0 +1,20 @@
+Question Set
+
+**1. 모델이 훈련데이터에서의 성능은 좋지만 새로운 샘플에서의 일반화 성능이 나쁘다면 어떤 문제가 있는 건가요? 해결책 세 가지는 무엇인가요?**
+
+훈련 데이터에 과대적합 되었기 때문. 단순화하기, 훈련 데이터 더 많이 집어넣기, 훈련 데이터 잡음 줄이기.
+
+
+**2. 데이터의 불균형한 특성을 고려할 때, StratifiedKFold 교차 검증을 적용하는 과정에서 발생할 수 있는 문제점은 무엇이며, 이를 어떻게 해결할 수 있을까요?**
+
+
+
+**3. 정확도를 분류기의 성능 측정 지표로 선호하지 않는 이유를 작성해주세요. (Precision과 Recall이라는 키워드를 써서 작성해주세요)**
+
+ 데이터가 불균형하면 정확도가 굉장히 높아지는 등 지표로 사용하기 적합하지 않다. 그래서 정밀도precision, 재현율recall 등의 다른 지표를 사용한다.
+
+
+**4. 경사하강법을 사용하여 모델을 학습할 때, 조기 종료 규제가 무엇을 의미하며, 이 규제가 왜 필요한지에 대해 설명해주세요.(예측오차와 과대적합이라는 키워드를 써서 설명해주세요)**
+
+ 검증 오차가 최소에 도달하는 즉시 훈련을 멈추는 것을 말한다. 경사하강법의 에포크가 증가할수록 검증에 대한 오차가 줄어들었다가 다시 늘어난다.
+ 다시 늘어나는 것은 모델이 훈련 데이터에 과대적합되었다는 것이다.
diff --git a/suhyeonx/Week_1/week1-chap1.md b/suhyeonx/Week_1/week1-chap1.md
new file mode 100644
index 0000000..c02d78b
--- /dev/null
+++ b/suhyeonx/Week_1/week1-chap1.md
@@ -0,0 +1,105 @@
+### 용어
+머신러닝: 데이터에서 학습하도록 컴퓨터를 프로그래밍하는 과학(또는 예술)
+데이터 마이닝: 대용량의 데이터를 분석해 숨겨진 패턴을 발견하는 것
+
+### 요약
+- 머신러닝이란?
+- 머신러닝이 왜 유용한지
+- [[머신러닝 시스템의 분류]]
+ - 지도 학습 vs 비지도 학습
+ - 준지도 학습, 자기 지도 학습
+ - 온라인 학습과 배치 학습
+ - 사례 기반 학습과 모델 기반 학습
+- [[머신러닝 프로젝트의 형태]]
+- [[머신러닝의 주요 도전 과제(문제&해결법)]]
+- [[머신러닝 평가와 튜닝]]
+
+[[선형 분류 알고리즘]]
+[[전이 학습transfer learning]]
+### 연습문제
+
+① 머신러닝을 어떻게 정의할수 있나요?
+ 일반적인 정의:
+ 명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야
+ 공학적인 정의:
+ 어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 p에 대해 경험 E로 학습한 것이다.
+ 머신러닝은 데이터로부터 학습할 수 있는 시스템을 만드는 것. 어떤 작업에서 주어진 성능 지표가 더 나아지는 것을 의미.
+
+② 머신러닝이 도움을 줄 수 있는 문제 유형 네 가지를 말해보세요.
+- 기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제
+- 전통적인 방식으로는 해결 방법이 없는 복잡한 문제
+- 유동적인 환경
+- 복잡한 문제와 대량의 데이터에서 인사이트 얻기
+
+③ 레이블된 훈련 세트란 무엇인가요?
+분류가 된 훈련 세트 ex) 스팸 이메일 샘플, 스팸이 아닌 이메일 샘플
+각 샘플에 대해 원하는 정답(레이블)을 담고 있는 훈련 세트
+
+④ 가장 널리 사용되는 지도 학습 작업 두 가지는 무엇인가요?
+분류, 회귀
+
+⑤ 보편적인 비지도 학습 작업 네 가지는 무엇인가요?
+군집 알고리즘, 시각화, ~~이상치 탐지~~, 차원 축소, 연관 규칙 학습
+
+⑥ 사전 정보가 없는 여러 지형에서 로봇을 걸어가게 하려면 어떤 종류의 머신러닝 알고리즘을 사용해야 하나요?
+강화 학습
+
+⑦ 고객을 여러 그룹으로 분할하려면 어떤 알고리즘을 사용해야 하나요?
+군집 알고리즘, 계층 군집 알고리즘
+군집 알고리즘(비지도 학습) -> 분류 알고리즘(지도 학습)
+
+⑧ 스팸 감지의 문제는 지도 학습과 비지도 학습 중 어떤 문제로 볼 수 있나요?
+지도 학습
+
+⑨ 온라인 학습 시스템이 무엇인가요?
+작은 묶음 단위로 데이터를 주입하는 방식
+온라인 학습 시스템은 배치 학습 시스템과 달리 점진적으로 학습할 수 있습니다. 이 방식을 사용하면 변화하는 데이터와 자율 시스템에 빠르게 적응하고 매우 많은 양의 데이터를 훈
+련시킬 수 있습니다.
+
+⑩ 외부 메모리 학습이 무엇인가요?
+메인 메모리에 들어갈 수 없는 큰 데이터셋에서 모델을 훈련 시킬 때.
+실시간 시스템(온라인) 수행이 아님. 온라인 학습 기법 사용
+
+⑪ 예측을 하기 위해 유사도 측정에 의존하는 학습 알고리즘은 무엇인가요?
+사례 기반 학습
+
+12) 모델 파라미터와 학습 알고리즘의 하이퍼파라미터 사이에는 어떤 차이가 있나요?
+모델 파라미터는 훈련을 하고 훈련 세트에 맞는 모델의 값을 찾아낼 때 쓰임. (ex 선형 모델의 기울기)
+하이퍼파라미터는 훈련 전에 미리 지정되고 훈련하는 동안에 상수로 남아있다. 학습 알고리즘 자체의 파라미터. (ex 적용할 규제의 정도)
+
+⑬ 모델 기반 알고리즘이 찾는 것은 무엇인가요? 성공을 위해 이 알고리즘이 사용하는 가장 일반적인 전략은 무엇인가요? 예측은 어떻게 만드나요?
+(비용 함수를 최소화하는) 최적의 모델 파라미터 찾기.
+가장 일반적인 전략 - 좋은 예측을 위해 더 많은 특성을 사용하거나/ 좋은 훈련 데이터를 더 많이 모으거나/ 더 강력한 모델을 선택
+일반적으로 훈련 데이터에서 시스템의 예측이 얼마나 나쁜지 측정하고 모델에 규제가 있다면 모델 복잡도에 대한 페널티를 더한 비용 함수를 최소화함으로써 시스템을
+훈련시킵니다.
+예측은 새로운 데이터에 모델을 적용해 만든다.
+
+14) 머신러닝의 주요 도전 과제는 무엇인가요?
+모델을 선택해 어떤 데이터에 훈련시키는 것
+ 머신러닝의 주요 도전 과제는 부족한 데이터, 낮은 데이터 품질, 대표성 없는 데이터. 무의 미한특성, 훈련 데이터에 과소적합된 과도하게 간단한 모델. 훈련 데이터에 과대적합된 과
+도하게 복잡한 모델 등입니다.
+
+15) 모델이 훈련 데이터에서의 성능은 좋지만 새로운 샘플에서의 일반화 성능이 나쁘다면 어떤 문제가 있는 건가요? 해결책 세 가지는 무엇인가요?
+과대적합
+- 단순화 (파라미터 수가 더 적게, 훈련 데이터의 특성 수 줄이기, 규제)
+- 더 많은 훈련 데이터
+- 훈련 데이터의 잡음 줄이기
+
+16) 테스트 세트가 무엇이고 왜 사용해야 하나요?
+만든 모델을 새로운 샘플에 바로 적용할 수 없으니까.
+실전에 배치되기 전에 모델이 새로운 샘플에 대해 만들 일반화 오차를 추정 하기 위해 사용됩니다.
+
+17) 검증 세트의 목적은 무엇인가요?
+모델과 하이퍼파라미터가 테스트 세트에 최적화된 모델을 만들었을 때. (테스트 세트에 과대적합 방지)
+모델을 비교하는 데 사용, 이를 이용해 가장 좋은 모델 선택
+
+18) 훈련-개발 세트가 무엇인가요? 언제 필요하고 어떻게 사용해야 하나요?
+훈련 데이터의 일부를 떼어내 또 다른 세트를 만드는 것.
+검증 세트에서의 성능이 나쁜데 그 이유가
+1. 훈련 세트에 과대적합되었기 때문인지 (훈련 세트 ok, 훈련-개발 세트 bad)
+2. 데이터의 불일치 때문인지 파악하기 위해 (훈련 세트 ok, 훈련-개발 세트 ok)
+
+19) 테스트 세트를 사용해 하이퍼파라미터를 튜닝하면 어떤 문제가 생기나요?
+모델과 하이퍼파라미터가 테스트 세트에 최적화된 모델을 만들 수 있다.
+-> 새로운 데이터에 잘 작동하지 않을 수 있다.
+일반화 오차를 낙관적으로 측정하게 됨.
diff --git a/suhyeonx/Week_1/week1-chatp1-1.md b/suhyeonx/Week_1/week1-chatp1-1.md
new file mode 100644
index 0000000..8bbe33f
--- /dev/null
+++ b/suhyeonx/Week_1/week1-chatp1-1.md
@@ -0,0 +1,108 @@
+# 머신러닝 시스템의 분류
+## 훈련 지도 방식에 따른 분류
+## 지도 학습 supervised learning
+훈련 데이터에 레이블이 포함.
+1) **분류** classification
+2) **특성** feature을 사용해 **타깃** target 수치 예측 => 회귀 regression
+ - 회귀 알고리즘을 분류에 사용할 수도 있고 분류 알고리즘을 회귀에 사용할 수도 있음.
+
+### 비지도 학습 unsupervised learning
+훈련 데이터에 레이블이 없음.
+1) **군집** clustering 알고리즘 - 그룹으로 묶는다.
+2) **계층 군집** hierarchical 알고리즘 - 더 작은 그룹으로 세분화.
+ - 분할 군집 divisive clustering (하향식), 병합 군집 agglomerative clustering (상향식)
+3) **시각화** visualization 알고리즘 - 도식화가 가능한 2D, 3D 표현 제공
+4) **차원 축소** - 특성 합치기 = **특성 추출** feature extraction
+5) **이상치 탐지** outlier detection
+6) **특이치 탐지** novelty detection
+7) **연관 규칙 학습** association rule learning
+
+### 준지도 학습 semi-supervised learning
+레이블이 일부만 있는 데이터.
+- 대부분 지도 학습 + 비지도 학습
+
+
+### 자기 지도 학습self-supervised learning
+레이블이 없는 데이터셋에서 레이블이 완전히 부여된 데이터셋 생성
+- 비지도 학습보단 지도 학습에 가깝
+- 비지도 학습 - 군집, 차원 축소, 이상치 탐지
+- 자기 지도 학습 - 분류, 회귀
+
+### 강화 학습 reinforcement learning
+- 학습하는 시스템 agent. 환경 environment을 관찰해 행동action을 실행하고 그 결과로 보상reward or 벌점penalty 부과
+- 시간이 지나면서 가장 큰 보상을 얻기 위해 정책policy 라 부르는 최상의 전략을 스스로 학습.
+
+
+
+## 입력 데이터의 스트림으로부터 점진적으로 학습할 수 있는지 여부에 따른 분류
+### 배치 학습 batch learning
+가용한 데이터를 모두 사용해 훈련
+- 시간과 자원(cpu, 메모리 공간, 디스크 공간...) 많이 소모 -> 오프라인 수행
+**오프라인 학습** offline learning
+- 모델의 성능은 시간에 따라 감소
+ -> 모델 부패 model rot or 데이터 드리프트 drift
+ -> 정기적 재훈련 필요
+
+### 온라인 학습 online learning (점진적 학습 incremental learning)
+데이터를 순차적으로 한 개씩 또는 미니배치 mini-batch라 부르는 작은 묶음 단위로 주입.
+- 매 학습 단계가 빠르고 비용이 적게 든다.
+어디에 적합?
+ - 빠른 변화에 적응해야 하는 시스템
+ - 컴퓨팅 자원이 제한된 경우 (모바일)
+**외부 메모리 학습**out-of-core learning
+ - 보통 오프라인으로 실행됨. '온라인' 학습과 헷갈리지 말 것.
+- 중요한 파라미터: **학습률**learning rate
+ - 변화하는 데이터에 얼마나 빠르게 적응할 것인지
+ - 학습률 high: 데이터에 빠르게 적응/ 금방 잊어버림
+ - 학습률 low: 데이터에 느리게 학습/ 덜 민감
+
+
+
+## 어떻게 일반화되는가에 따른 분류
+### 사례 기반 학습instance-based learning
+단순히 기억하는 것.
+- 훈련 샘플 기억 -> 유사도 측정을 사용해 new and trained 비교하는 식으로 일반화
+
+### 모델 기반 학습model-based learning
+샘플들의 모델을 만들어 예측에 사용
+- 모델 선택model selection - ex) [[선형 모델linear model]] 채택
+ - 선형 모델의 기반의 예측과 비슷한 값을 내는 k-최근접 이웃k-nearest neighbors 회귀도 있음.- 사례 기반의 학습 알고리즘
+- 모델 파라미터 조정
+
+
+
+# 머신러닝의 주요 도전과제 (문제&해결법)
+### 주요 작업 <모델을 선택해 어떤 데이터에 훈련시키는 것>
+### 문제될 수 있는 것: '나쁜 모델', '나쁜 데이터'
+
+1. 충분하지 않은 양의 훈련 데이터
+2. 대표성이 없는 훈련 데이터
+ 대표하는 훈련 세트를 사용하기 어려운 이유
+ 1. 샘플이 작으면 **샘플링 잡음**sampling noise (우연에 의한 대표성 없는 데이터) 발생
+ 2. **샘플링 편향**sampling bias 매우 큰 샘플도 표본 추출 방법이 잘못되면 대표성을 띠지 못할 수 있다.
+3. 낮은 품질의 데이터
+ - 오류, 이상치, 잡음 가득
+ - 훈련 데이터 정제 필요
+4. 관련없는 특성
+ - 특성 공학feature engineering: 훈련에 좋은 특성 찾기
+ - 특성 선택feature selection
+ - 특성 추출feature extraction: 특성 결합
+ - 데이터 수집
+5. 훈련 데이터 과대적합overfitting
+ 훈련 데이터의 양과 잡음에 비해 모델이 너무 복잡할 때
+ ex) 고차원 다항 회귀 모델 vs 선형 모델
+ - 단순화: 파라미터 수가 적은 모델 선택, 특성 수 줄이기, **규제**regulation - 모델에 제약
+ - 규제의 양은 **[[하이퍼파라미터hyperparameter]]가 결정
+ - 더 많은 데이터
+ - 잡음 줄이기
+6. 훈련 데이터 과소적합underfitting
+ 모델이 너무 단순해서 데이터의 내재된 구조를 학습하지 못할 때
+ - 모델 파라미터가 더 많은 모델 선택
+ - 학습 알고리즘에 더 좋은 특성 제공(특성 공학)
+ - 모델의 제약을 줄인다. 하이퍼파라미터 감소
+
+
+
+- [[믿기 힘든 데이터의 효과]]
+
+
diff --git a/suhyeonx/Week_1/week1_chap2-4.md b/suhyeonx/Week_1/week1_chap2-4.md
new file mode 100644
index 0000000..1fce236
--- /dev/null
+++ b/suhyeonx/Week_1/week1_chap2-4.md
@@ -0,0 +1,216 @@
+
+# 2장 머신러닝 프로젝트 처음부터 끝까지
+## 2.1 문제 정의
+1) "비즈니스의 목적은?"
+2) "현재 솔루션은 어떻게 구성되어 있나요?"
+3) "어떤 지도 방식이 필요한가?"
+ex) 지도 학습 - 다중 회귀 - 단변량 - 일반적인 배치 학습
+- 데이터가 매우 크면 ([[맵리듀스MapReduce]] 기술 사용) - 배치 학습을 여러 서버로 분할, 또는 온라인 학습 기법 사용.
+
+## 2.2 성능 측정 지표 선택
+회귀 문제의 전형적인 성능 지표
+- 평균 제곱근 오차 RMSE
+- 평균 절대 오차 MAE - 이상치로 보이는 구역이 많을 때
+- 노름 norm
+ - 유클리드 노름 - 거리 계산. 제곱항을 합한 것의 제곱근
+ - 맨해튼 노름 - 절대값의 합 계산
+
+## 2.3 가정 검사
+
+## 2.4 데이터 이해를 위한 탐색과 시각화
+1) 지리적 데이터 시각화하기
+ ex) 산점도
+2) 상관관계 조사하기
+ - 표준 상관계수 (pearson's r) - corr() 메서드 사
+3) 특성 조합으로 실험하기
+ ex) 구역 내 전체 방 개수 -> 가구당 방 개수
+
+## 2.5 머신러닝 알고리즘을 위한 데이터 준비
+1) 데이터 정제
+2) 텍스트와 범주형 특성 다루기
+ - 원-핫 인코딩 (한 특성만 1이고 나머지는 0)
+ - 특성을 다루기 쉽게 바꾸는 방법: 표현 학습 representation learning ex) - 임베딩embedding - 학습 가능한 저차원 벡터로 바꾸는 것.
+3) 특성 스케일과 변화
+ - min-max 스케일링 (정규화 normalization) - 0과 1사이로 제한
+ - 표준화 - 특정 범위로 제한 x. 이상치에 영향 low
+ ex) 특성 분포의 꼬리가 두꺼울 때
+ 1. 특성을 제곱근으로 바꾼다.
+ 2. 버킷타이징bucketizing
+ - 역변환 주의
+4) 사용자 정의 변환기
+5) 변환 파이프라인
+
+## 2.6 모델 선택과 훈련
+1) 훈련 세트에서 훈련하고 평가하기
+ - 결정 트리
+2) 교차 검증으로 평가하기
+ 1. k-폴드 교차 검증
+ - 훈련 세트를 폴드fold라 부르는 중복되지 않은 10개의 서브셋으로 랜덤 분할
+ - 모델을 10번 훈련하고 평가하는데 매번 다른 폴드 사용
+ - 랜덤 포레스트
+ - 특성을 랜덤으로 선택해서 많은 결정 트리를 만들고 예측의 평균을 구함.
+ - 앙상블ensemble: 서로 다른 모델들로 구성된 모델
+
+## 2.7 모델 미세 튜닝
+1) 그리드 서치: 만족할 만한 하이퍼파라미터 조합을 찾을 때까지 수동으로 하이퍼파라미터를 조정
+- GridSearchCV
+2) 랜덤 서치 - RandomizedSearchCV - 하이퍼파라미터 탐색 공간이 커질 때
+3) 앙상블 방법 -> 7장
+4) 최상의 모델과 오차 분석
+
+## 2.8 론칭, 모니터링, 시스템 유지 보수
+- 론칭할 때 다시 읽어보자..
+
+## 2.9 직접 해보자.
+
+
+
+
+
+
+# 3장 머신 러닝 분류 시스템
+
+# 3.1 MNIST
+잘 알려진 데이터셋. OpenML.org 에서 다운 가능.
+
+# 3.2 이진 분류기 훈련
+확률적 경사 하강법Stochastic Gradient Descent (SGD)
+
+# 3.3 성능 측정
+1. 교차 검증을 사용한 정확도 측정
+- 정확도는 성능 측정 지표로 적당하지 않음.
+ - 특히 불균형 데이터셋을 다룰 때
+2. 오차 행렬confusion matrix
+![[Pasted image 20240105002051.png]]
+3. 정밀도precision와 재현율recall
+ 1. F1 점수: 정밀도와 재현율의 조화 평균
+ - 점수가 높아지려면 재현율과 정밀도가 모두 높아야한다.
+4. 정밀도/재현율 트레이드오프
+ - 적당한 결정 임곗값 정하기
+ - 임곗값이 높을수록 재현율은 낮아지고 반대로 (보통) 정밀도는 높아진다.
+ - 누군가가 "99% 정밀도를 달성하자" 라고 말하면 반드시 "재현율 얼마에서?" 라고 물어봐야 한다.
+5. ROC 곡선
+수신기 조작 특성reciever operating characteristic(ROC)
+- 거짓 양성 비율에 대한 진짜 양성 비율의 곡선
+- 민감도(재현율)에 대한 1-특이도 그래프
+- roc_curve() 함수
+- 좋은 분류기는 완전한 랜덤 분류기의 roc 곡선에서 멀리 떨어저야함. 왼쪽 위 모서리.
+- 곡선 아래의 면적area under the curve(AUC)로 비교
+
+
+# 3.4 다중 분류
+- 여러 전략 소개
+# 3.5 오류 분석
+- 성능 향상 방안에 대한 인사이트
+- 훈련 데이터를 더 모으거나
+- 특성을 찾아보거나
+- 이미지 전처리
+- **데이터 증식data augmentation** -> 7장
+# 3.6 다중 레이블 분류
+여러 개의 이진 꼬리표를 출력하는 분류 시스템
+- ClassifierChain 클래스
+ - 각 모델에 적절한 레이블 공급
+# 3.7 다중 출력 분류
+다중 레이블 분류에서 한 레이블이 다중 클래스가 될 수 있도록 일반화한 것.
+(값을 2개 이상 가질 수 있음)
+- 이미지에서 잡음을 제거하는 시스템
+- 픽셀의 강도를 담은 배열 출력
+- 분류기의 출력이 다중 레이블이고 각 레이블이 여러 개를 가짐.
+
+
+
+
+
+
+
+# 4장 머신 러닝 모델 훈련
+# 4.1 선형 회귀
+- 닫힌 형태의 방정식 - 파라미터 직접 계산
+- 경사 하강법 - 파라미터 수렴해가기
+선형 모델: 입력 특성의 가중치 합과 편향bias이라는 상수를 더해 예측을 만든다.
+목표: RMSE를 최소화하는 파라미터 찾기
+
+==정규 방정식normal equation==
+:해석적인 방법. 결과를 바로 얻을 수 있는 수학 공식
+- 유사역행렬, 특잇값 분해(SVD)
+- 역행렬 계산
+- 계산 복잡도 - O(n2)
+
+# 4.2 경사 하강법(GD)gradient descent
+여러 종류의 문제에서 최적의 해법을 찾을 수 있는 일반적인 최적화 알고리즘
+파라미터 벡터에 대해 비용 함수의 현재 그레이디언트gradient를 계산한다.
+- 세타를 임의의 값으로 시작(랜덤 초기화)
+- 조금씩 비용 함수가 감소되는 방향으로 진행
+- 중요한 파라미터 - 스텝의 크기. 학습률 하이퍼파라미터로 결정.
+- 전역 최솟값, 지역 최솟값
+-> '모델의 파라미터 공간에서 찾는다'
+
+- 비용함수의 편도함수
+- **에포크**epoch: 훈련 세트를 한 번 반복하는 것
+- 적절한 학습률을 찾는 것이 중요.
+
+#### 1. 배치 경사 하강법
+- 매 스텝에서 전체 훈련 세트를 사용한다.
+#### 2. 확률적 경사 하강법
+- 매 스텝에서 한 개의 샘플을 랜덤으로 선택하고 그 하나의 샘플에 대한 그레이디언트를 계산한다.
+#### 3. 미니배치 경사 하강법
+- 미니배치라 부르는 임의의 작은 샘플 세트에 대해 그레이디언트를 계산
+- SGD보다 최솟값에 더 가까이 도달하게 될 것이지만
+ - 지역 최솟값에서 빠져나오기는 더 힘들 수.
+
+![[Pasted image 20240105005619.png]]
+# 4.3 다항 회귀
+- PolynomialFeatures
+- 규제 기법
+
+# 4.4 학습 곡선
+- 고차 다항 회귀 모델에서 과대적합되는 경우 vs 과소적합
+1. 교차 검증을 통해 확인
+2. 학습 곡선 확인
+ - 모델의 훈련 오차와 검증 오차를 훈련 반복 횟소의 함수로 나타낸 그래프
+ - 훈련 세트와 검증 세트에서 일정한 간격으로 모델을 평가하고 그 결과를 그래프로 그린다.
+ - learning_curve()
+ - 훈련 오차, 검증 오차 검토
+- 편향/분산 트레이드 오프
+
+
+# 4.5 규제가 있는 선형 모델
+과대적합 줄이기
+#### 모델 규제
+- 자유도, 다항식 차수를 줄이기
+- 모델의 가중치를 제한
+
+### 릿지 회귀
+규제항이 추가된 선형 회귀 버전.
+- 훈련하는 동안에만 비용 함수에 추가
+- 하이퍼파라미터 a가 모델을 얼마나 규제할지 조절
+
+### 라쏘 회귀
+규제항을 추가한다. ㅣ2 노름 대신 가중치 벡터의 ㅣ1노름 사용
+- 덜 중요한 특성의 가중치를 제거하려고 한다.
+- 자동으로 특성 선택을 수행하고 희소 모델을 만든다.
+- 비용 함수가 세타 = 0에서 미분 불가능
+ - 서브그레이디언트 벡터 g 사용
+
+### 엘라스틱넷
+릿지와 라쏘를 절충한 모델
+혼합 정도는 혼합 비율 r을 사용.
+- 릿지가 기본이 되지만 몇 가지 특성만 유용하다 -> 라쏘, 엘라스틱넷
+- 특성 수가 훈련 샘플 수보다 많거나 특성 몇 개가 강하게 연관되어 있을 때는 라쏘가 문제 발생 -> 엘라스틱넷
+
+### 조기 종료
+검증 오차가 최솟값에 도달하면 바로 훈련 중지
+
+### 로지스틱 회귀
+- 샘플이 특정 클래스에 속할 확률을 추정하는 데 널리 사용
+- 선형 회귀처럼 바로 결과를 출력하지 않고 결괏값의 로지스틱을 출력한다.
+ - 로지스틱 = 0과 1사이의 값을 출력하는 시그모이드 함수
+ - 양성 샘플, 음성 샘플
+
+### 소프트맥스 회귀 (다항 로지스틱 회귀)
+로지스틱 회귀 모델은 여러 개의 이진 분류기를 훈련시켜 연결하지 않고 직접 다중 클래스를 지원하도록 일반화될 수 있다.
+- 파라미터 벡터들은 파라미터 행렬에 행으로 저장
+- 크로스 엔트로피 비용 함수
+
+
+
diff --git a/suhyeonx/Week_2/Week_2.md b/suhyeonx/Week_2/Week_2.md
new file mode 100644
index 0000000..19dcf0c
--- /dev/null
+++ b/suhyeonx/Week_2/Week_2.md
@@ -0,0 +1,133 @@
+# 10장 케라스를 사용한 인공 신경망 소개
+인공 신경망 artificial neural network(ANN):
+뇌에 있는 생물학적 뉴런의 네트워크에서 영감을 받은 머신러닝 모델
+
+# 10.1 생물학적 뉴런에서 인공 뉴런까지
+- 1943년 매컬러&피츠 최초의 인공신경망 구조 논문
+- 생물학적 뉴런 -> 인공 뉴런
+ - 뉴런을 이용한 인공 연산
+### 퍼셉트론
+가장 간단한 인공 신경망 구조
+![[Pasted image 20231229011010.png]]- 계단 함수 사용
+ - 헤비사이드 계단 함수 heaviside step function
+- 훈련 알고리즘 - 헤브의 규칙에서 영감
+ - 헤브의 규칙 (헤브 학습 hebbian learning): 두 뉴런이 동시에 활성화될 때마다 이들 사이의 연결 가중치가 증가하는 경향이 있다.
+
+사이킷런 - perceptron class
+
+### 다층 퍼셉트론(MLP)
+- 입력 층 + 은닉 층 + 출력 층
+- 입력 층과 가까운 층 - 하위 층, 반대는 상위 층
+모든 그레디언트를 자동으로 효율적으로 계산하는 알고리즘
+**후진 모드 자동 미분**reverse-mode automatic differentiation (reverse-mode autodiff)
+: 네트워크를 두 번 통과(전진, 후진)하면 모든 단일 모델 파라미터에 대한 신경망 오차의 그레이디언트를 계산할 수 있다.
+
+### 역전파backpropagation (backprop)
+후진 모드 자동 미분 + 경사 하강법
+
+### 비선형함수
+계단 함수를 로지스틱 함수(시그모이드 함수)로 바꿈.
+->수평선밖에 없으니 계산할 그레이디언트가 없음.
+1) tanh 함수
+2) ReLU 함수
+
+### 다층 퍼셉트론 적용
+- 회귀
+- 분류
+
+# 10.2 케라스로 다층 퍼셉트론 구현하기
+
+# 10.3 신경망 하이퍼파라미터 튜닝하기
+
+하이퍼 파라미터의 종류
+- 은닉 층 개수
+- 은닉 층의 뉴런 개
+ 일반적으로 층의 뉴런 수보다 층 수를 늘리는 쪽이 이득이 더 많다.
+- 학습률
+- 옵티마이저
+- 배치 크기
+
+
+
+
+# 11장 심층신경망 훈련
+문제1:
+==그레이디언트 소실 & 폭주==
+안정화 필요
+
+해결1:
+### 초기화initialization
+각 층의 연결 가중치를 랜덤으로 초기화
+ - 글로럿 초기화 (세이비어 초기화)
+ - 르쿤 초기화LeCun
+ - He 초기화 (카이밍 초기화)
+
+
+해결2:
+ReLU는 완벽 x. - 죽은 ReLU 문제
+### 고급활성화 함수 사용
+- LeakyReLU
+- ELU
+- SELU
+- GELU
+ - SiLU(Swish)
+
+해결3:
+### 배치 정규화batch normalization
+활성화 함수를 통과하기 전이나 후에 모델에 연산 추가
+1. 입력을 원점에 맞추고 정규화
+2. 각 층에서 두 개의 새로운 파라미터로 결과값의 스케일을 조정, 이동
+ 하나는 스케일 조정, 하나는 이동
+
+장점:
+- 그레이디언트 소실 문제가 크게 감소 -> 수렴성을 가진 활성화 함수 사용 가능
+ ex) tanh, 시그모이드
+ - 가중치 초기화에 네트워크가 훨씬 덜 민감
+ - 큰 학습률
+ - 규제와 같은 역할
+
+단점:
+- 모델의 복잡도를 키운다.
+- 에포크마다 시간은 더 걸리지만 수렴이 훨씬 빨라져 보통 상쇄된다.
+
+
+해결4:
+### 그레이디언트 클리핑
+역전파될 때 특정 임곗값을 넘어서지 못하게 그레이디언트를 잘라내기.
+- 일반적으로 배치 정규화를 사용하기 까다로운 순환 신경망에서 사용된다.
+
+
+
+# 11.2 사전 훈련된 층 재사용하기
+전이 학습: 비슷한 유형의 문제를 처리한 신경망을 재사용하기.
+-> 훈련 속도 up, 필요한 훈련 데이터도 줄어든다.
+- 비지도 사전 훈련
+- 보조 작업에서 사전 훈련
+
+
+# 11.3 고속 옵티마이저
+- 모멘텀 최적화
+- 네스테로프 가속 경사
+ - AdaGrad
+ - 학습률을 감소시키지만 경사가 완만한 차원보다 가파른 차원에 대해 더 빨리 감소. -> 적응적 학습률
+ -> 전역 최적점 방향으로 더 곧장 가도록 갱신됨.
+ - Adam
+ - 적응적 모멘트 추정. 모멘텀 최적화 + RMSProp
+ - AdaMax, Nadam, AdamW..
+
+- 학습률 스케줄링
+ - 거듭제곱, 지수, 구간별 고정, 성능,..
+
+# 11.4 규제를 사용해 과대적합 피하기
+1. l1과 l2규제
+2. 드롭아웃
+ - 매 훈련 스텝에서 각 뉴런은 임시적으로 드롭아웃될 확률 p를 가짐.
+ - 하이퍼파라미터 p = 드롭아웃 비율
+ - 각 훈련 스텝에서 고유한 네트워크가 생성
+ - 과대적합 되면 드롭아웃 비율 높게
+ - 수렴을 느리게 만드는 경향이 있지만 적절한 튜닝은 좋음.
+ - 몬테 카를로 드롭아웃
+
+3. 맥스-노름 규제
+
+# 11.5 요약 및 실용적인 가이드라인
diff --git a/suhyeonx/Week_3/Week_3.md b/suhyeonx/Week_3/Week_3.md
new file mode 100644
index 0000000..b289017
--- /dev/null
+++ b/suhyeonx/Week_3/Week_3.md
@@ -0,0 +1,83 @@
+# 12장 텐서플로를 사용한 사용자 정의 모델과 훈련
+
+## 12. 1 텐서플로 훑어보기
+- 텐서플로 - 구글 브레인 팀 개발
+- 딥러닝 라이브러리
+- 많은 연산은 커널이라고 부르는 여러 구현을 가진다.
+ - CPU, GPU 또는 TPU 와 같은 특정 장치에 맞추어 만들어졌다.
+ - [[GPU]] - 계산을 작은 단위로 나누어 여러 GPU 스레드에서 병렬로 실행 -> 속도를 극적으로 향상
+ - [[TPU]]는 더 빠르다. - 딥런이 연산을 위해 특별하게 설계된 ASIC 칩.
+ - 텐서플로 - 방대한 생태계
+## 12.2 넘파이처럼 텐서플로 사용하기
+- tf.Tensor - 변경이 불가능한 객체
+- tf.Variable - 변경이 가능한 객체
+- 텐서플로의 여러 데이터 구조
+- 연산
+
+## 12.3 사용자 정의 모델과 훈련 알고리즘
+### 사용자 정의 손실 함수 만들기
+- 평균 제곱 오차: 큰 오차에 너무 과한 벌칙을 가함.
+- 평균 절댓값 오차: 이상치에 관대해서 훈련이 수렴되기까지 시간이 걸린다.
+- -> 후버 손실(10장)
+- 매개변수를 받을 수 있는 함수 만들기
+ - threshold 저장 x.
+ - get_config() 메서드 구현
+
+### 활성화 함수, 초기화, 규제, 제한 커스터마이징 하기
+
+![[Pasted image 20240110223606.png]]
+
+
+```
+__call__() 메서드 구현하기.
+```
+
+
+### 사용자 정의 지표
+- 손실(ex) 크로스 엔트로피): 경사 하강법에서 모델을 훈련하기 위해 사용.
+ - 미분 가능해야하고 그레이디언트가 모든 곳에서 0이 아니어야 한다.
+- 지표: 모델을 평가할 때 사용
+ - 미분 가능하지 않거나 모든 곳에서 그레이디언트가 0이 아니어도 됨.
+- 스트리밍 지표streaming metric (또는 상태가 있는 지표stateful metric)
+ - 배치마다 점진적으로 업데이트
+ - tf.keras.metrics.Precision 클래스
+- 사용자 정의 스트리밍 지표 - tf.keras.metrics.Metric 클래스 상속
+
+### 사용자 정의 층
+- 가중치가 없는 층 - tf.keras.layers.Lambda 층으로 감쌀 수 있다.
+- 상태가 있는 층 (가중치를 가진 층) - tf.keras.layers.Layer 상속
+
+### 사용자 정의 모델
+1. tf.keras.Model 상속
+2. 생성자에서 층과 변수 생성
+3. 모델이 해야할 작업을 call() 메서드에 구현
+
+### 모델 구성 요소에 기반한 손실과 지표
+모델의 구성 요소 - 은닉 층의 가중치나 활성화 함수
+
+### 자동 미분으로 그레이디언트 계산하기
+gradient() 메서드
+- 한 번 이상 호출해야 하면 지속 가능한 테이프를 만들고 사용이 끝난 후 테이프를 삭제해 리소스를 해제해야 한다.
+- jacobian() 메서드
+- tf.stop_gradient() 함수 - 신경망의 일부분에 그레이디언트가 역전파되지 않도록 막아야한다.
+
+### 사용자 정의 훈련 반복
+- fit() 메서드
+- ![[Pasted image 20240111043746.png]]
+- 주의해야 할 점이 많고 그 과정에서 실수하기도 쉽다.
+- 장점은 완전하게 제어할 수 있다.
+
+
+## 12.4 텐서플로 함수와 그래프
+tf.function()
+- 텐서플로는 계산 그래프를 최적화한다.
+ - 일반적으로 원본 파이썬 함수보다 훨씬 빠르다.
+- XLAaccelerated linear algebra를 사용해 전용 커널을 컴파일하며, 종종 여러 연산을 융합한다.
+- 다형성(다양한 매개변수 타입과 크기)을 처리한다.
+### 오토그래프와 트레이싱
+- 파이썬 함수의 소스 코드를 분석해 제어문을 모두 찾는 것.
+ - while, if 같은 메서드가 없기 때문이다.
+
+
+![[Pasted image 20240111044412.png]]
++) 텐서플로 함수를 사용할 때 따라야 할 여러 규칙
diff --git a/suhyeonx/Week_3/flower_classification.md b/suhyeonx/Week_3/flower_classification.md
new file mode 100644
index 0000000..acdf345
--- /dev/null
+++ b/suhyeonx/Week_3/flower_classification.md
@@ -0,0 +1,48 @@
+# 첫 대회 첫 시도 회고
+
+요약: 엉망진창
+
+총 실험 회수는 약 20회.
+f1 score 0.9 달성을 목표로 하기보단 케라스를 다뤄보는 데에 초점이 있었다.
+(진행 중에 pretained model(trainable)의 T/F를 껐다 켜보거나, 배치 정규화를 넣었다 빼보거나)
+이번 주를 발판 삼아 다음에 다시 이 대회를 시작부터 천천히 해보는 거로 하자.
+그 때도 실험은 적당히 해보기.
+
+이번 케라스 사용기의 고칠점:
+1. 기록 하나씩 꼼꼼히 확인하기
+ 기록을 하려고 했음에도 제대로 안된 부분이 있었다.
+ ex) 단순 기록 실수, 실험에서 누락된 코드, 수정한 부분 인지 미스,, 등등..
+ 그러다 보니까 꼬여서 다시 베이스라인으로 돌아가기도 했다.
+2. 변화는 조금씩, 한 변수마다.
+ 한꺼번에 여러 변화를 주려고 한 적도 있었다.
+ 한 번에 다 추가해서 확 점수를 올리려고 한 것 같다.
+3. 복습 먼저
+4. 다른 사람들의 시도 정황 보기.
+ 왜 그런 시도가 있었는지 파악하기.
+ 너무 맨 땅에 해딩하듯이 시도한 것도 화근.
+5. 집착 노노.. 스트레스 받지 말기. 훈련 시간 적응하기.
+
+**변하지 않은 것:**
+model: vgg16
+size: 331
+
+**시도해 본 것들:**
+에포크 -> 30
+batch.normalization layer 추가
+adam->nadam
+pretained_model_train = true
+학습률 조정.
+
+**알게 된 것:**
+- 전이 학습은 사전 훈련된 모델에서 레이어를 가져오는 것이다.
+ `layer.trainable`을 `False`로 설정하면 모든 레이어의 가중치가 훈련 가능에서 훈련 불가능으로 이동합니다. 이를 레이어 "동결"이라고 한다.
+ 반대로 `True`로 설정하면 가중치가 훈련 가능하다.
+- early stopping - patience 충분히 늘리지 않으면 너무 빨리 종결됨.
+- model에 마음대로 layer 추가하니까 모델이 망가졌다.
+
+ex)
+![image](https://github.com/GDSC-Hongik/2023-2-Hands-On-Machine-Learning-Study/assets/80656423/2be1c0d1-11db-4c34-b945-728582e6dbdf)
+
+![image](https://github.com/GDSC-Hongik/2023-2-Hands-On-Machine-Learning-Study/assets/80656423/ebd91d0f-d93b-4527-89dc-85706d8cea6b)
+
+- 개념들을 헷갈렸던 게 너무 많아서 복습 한 번하고 봐야겠다.