으아... 정말 엄청난 반성만 하게되는 이번 혼공학습단 활동이다.

공부가 아닌 벼락 숙제만으로 점철된 혼공 스터디 !

 

다음 15기에 다시 도전해서 기회를 얻게 된다면,

벼락 숙제가 아닌 꼼꼼한 공부를 하는 착실한 학생이 되도록 해야겠다.

 

겉멋만 들어서 이미 공부했던 알고 있는 내용이라고 쓱~쓱~ 넘겨버렸던 딥러닝 개념들인데,

벼락 숙제하면서 코드를 살펴보면... 사실 혼자서 해보라고 하면 어떻게 해야할지 엄두도 나지 않는 내용들이었다.

 

다시 한 번 스터디할 때에는 PyTorch로 하나씩 직접 포팅해보면서

전부 내 것으로 만드는 과정을 가져보도록 해야겠다.

반응형

연휴만 만나면 정신을 못차리고 또 다시 지각 공부를 하게 되어버린 불량 학습자 !!!

 

▶ 기본 숙제 (필수)

CH04 (04-2) KerasNLP 또는 허깅페이스 BERT 모델로 영화 리뷰 감성 분석 후 결과 캡처하기

 

제공된 샘플 코드에서는 A100으로 학습했다고 하는데, T4로도 진행은 되었다.

다만, 엄청 오래걸렸을뿐...

 

label 값이랑 비교해보면 100% 정답을 맞췄다라는 것을 알 수 있다.

코멘트 내용도 참고해서 볼 수 있도록 추가해봤다.

 

"0" 값이 부정적인 평가이고, "1" 값이 긍정적인 평가이다.

반응형

무더운 여름이 계속되지만, 공부도 계속 되어야 한다구요 !!!

 

 

▶ 기본 숙제 (필수)

CH03 (03-3) 사전 훈련 모델로 피스타치오 품종 이미지 분류 실습 후 결과 캡처하기

 

① 피스타치오 이미지 파일 다운로드

 

② 사전 훈련된 모델을 이용해서 품종 분류 예측 (EfficientNetB7 모델)

 

오늘은 일정이 좀 있어서 여기까지만 !

반응형

말 그대로 눈 깜짝할 사이에 지나간 한 주.

어느덧 혼공학습단도 3주차가 되었다.

 

 

▶ 기본 숙제

Ch.02(02-2) VGGNet 또는 ResNet으로 고양이/강아지 이미지 분류하고 결과 화면 캡처하기

 

VGGNet으로 실행한 결과인데,

 

왠지 아쉬워서 ResNet까지 해봤다.

 

 

▶ 추가 숙제

Ch.02(02-1, 02-2, 02-3) AlexNet, VGGNet, ResNet 중 하나를 골라 모델 구조를 그림 또는 표로 정리하기

 

 

손으로 한 번 그려보려다가.... 그냥 summary 찍어버렸다 ^^

 

반응형

혼공학습단을 하게 되니, 일주일이 너무 빨리 지나간다.

저번 주 스터디를 한지 얼마 안된 것 같은데, 벌써 2주차 마지막 날이라니... 

 

 

정말 다행인 것은 다음 챕터가 아닌 Chapter 01 실습이라 큰 부담은 되지 않았다. 😅

 

 

▶ 기본 숙제 (필수)

Ch.01(01-3) LeNet으로 Fashion MNIST 분류 실습 후 예측 결과 화면 캡쳐하기

 

앞서 분류되어 있는 test 데이터를 가지고 실행하도록 했고,

눈으로 좀 보고 싶어서 앞의 10개 데이터는 화면에 보여주도록 했다.

 

 

 

 

▶ 추가 숙제 (선택)

예측이 틀린 이미지를 골라 "왜 틀렸을까?" 추측해보기

 

 

실제로는 "Coat"인데, "Pullover"로 예측을 한 샘플이다.

전체적으로 예측값과 실제값 사이의 matrix를 찍어보면 다음과 같다.

 

 

예측값이 틀린 경우를 보면 주로 Shirt, T-shirt/top, Pullover, Coat에서 발생한다는 것을 알 수 있다.

실제 상당히 유사한 데이터들임을 알 수 있다.

 

이를 극복하기 위한 방법을 생각해보면 다음과 같다.

- 더 많은 데이터 (Augmented 포함)

- 28x28 보다 더 큰 이미지 사이즈

- 단색이 아닌 RGB 컬러 이미지 입력

 

반응형

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

 

 

개발자라면 누구나 알고 있을 "혼공" 시리즈.

 

혼자서도 공부할 수 있도록 잘 만들어진 책일 뿐만 아니라,

동영상 강의도 제공해주고 샘플 코드도 제공해주는 정말 혜자와 같은 교과서들이다.

 

그런데, 이제는 "혼공"이 아니라 "혼만" 시리즈가 나오고 있다.

 

"혼자 만들면서" 시리즈 !!!

그것도, "딥러닝" !!!

거기다가, "박해선"님 !!!

 

 

5월에 출간한 따끈따끈한 책이다.

 

딥러닝은 CNN 부터 시작하는 것이 국롤이기에,

이 책 역시 '합성곱 신경망(CNN)'으로 Chapter 01 시작이다.

 

 

최근 트렌드는 LLM,

트랜스포머의 디코더 기반으로 만들어진 GPT 모델도 Chapter 05에서 알려주고 있다.

 

 

트랜스포머의 인코더와 디코더를 모두 사용하는 모델인

BART와 T5까지 마지막 챕터에서 언급해주고 있다.

 

 

이론이 아니라 직접 만들어 보면서 공부할 수 있는 책이라서 정말 마음에 들었다.

그렇다고 이론적인 내용이 없는 것도 아니다. 충분히 친절하게 이론에 대한 설명도 해주고 있다.

 

더더욱 이 책이 마음에 드는 것은 컬러 인쇄이다!!!

눈이 안아프게 빛 반사도 적은 종이 재질이다!!!

 

 

이와같은 "혼공/혼만" 시리즈 책을 정말 제대로 공부하기 위해서는

"혼공학습단"에 지원해서 맛있는 간식을 먹으며 많은 사람들과 함께 공부하는 것이다.

 

 

이번 14기 참여 기회를 놓쳤다면.... 다음 15기에 지원하면 된다 ^^

종종 있으니 꼭 기억했다가 참여하길 바란다.

 

"혼공/혼만" 시리즈 책들은 많이 있으니 관심있는 다른 책도 구매해서~~~ ^^

 

 

혼공학습단 활동을 열심히 하면 많은 것들이 생긴다 !!!

 

 

혼자 공부할 수 있는 책이지만,

혼자 하다 보면 의욕이 떨어지거나 작심삼일이 되기 쉬운 분들은

이런 활동을 통해서 동기부여를 받으면 좋지 않을까 한다.

 

 

화이팅!!!

반응형

드디어 딥러닝으로 들어간다~!!! 고! 고!

 

 

 

인공 신경망 (Neural Network)

- 텐서플로(Tensorflow), 케라스(Keras)

- 이진 분류: binary_crossentropy, 다중 분류: categorical_crossentropy

- Dense → Sequential → compile → fit → evaluate

 

심층신경망

- model.summary()

- keras.layers.Flatten()

- relu

- optimizer

  . 기본 경사 하강법 옵티마이저: SGD, Momentum, nesterov

  . 적응적 학습률 옵티마이저: RMSprop, Adam, Adagrad

 

신경망 모델 훈련

- loss function

- epochs

- drop-out

- early stopping

 

 

 

기본 숙제 : Ch.07(07-1) 확인 문제 풀고, 풀이 과정 정리하기

 

1. 어떤 인공 신경망의 입력 특성이 100개이고 밀집층에 있는 뉴런 개수가 10개일 때 필요한 모델 파라미터의 개수는 몇 개인가요?

 

③ 1,010 개

 

→ 풀이

'wx + b'와 같기 때문에 뉴런의 개수가 10개이고 입력값이 100개라면 다음과 같이 계산할 수 있다.

10 * 100 + 10 = 1010

 

 

2. 케라스의 Dense 클래스를 사용해 신경망의 출력층을 만들려고 합니다. 이 신경망이 이진 분류 모델이라면 activation 매개변수에 어떤 활성화 함수를 지정해야 하나요?

 

② sigmoid

 

→ 풀이

이진 분류 모델이라면 0과 1로 수렴하는 형태가 유리하므로 sigmoid를 사용하는 것이 적합하다.

 

 

3. 케라스 모델에서 손실 함수와 측정 지표 등을 지정하는 메서드는 무엇인가요?

 

④ compile()

 

→ 풀이

간단한 형태의 코드 샘플을 통해 알아볼 수 있다.

dense = keras.layers.Dense(10, activation='softmax', input_shape=(784,))
model = keras.Sequential(dense)
model.compile(loss='sparse_categorical_crossentropy', metrics='accuracy')
model.fit(train_scaled, train_target, epochs=5)
model.evaluate(val_scaled, val_target)

 

 

4. 정수 레이블을 타깃으로 가지는 다중 분류 문제일 때 케라스 모델의 compile() 메서드에 지정할 손실 함수로 적절한 것은 무엇인가요?

 

① sparse_categorical_crossentropy

 

→ 풀이

One-Hot 방식인 경우 'categorical_crossentropy'를 사용하면 되고,

정수 레이블이라면 'sparse_categorical_crossentropy'를 사용하면 된다.

 

 

 

추가 숙제 : Ch.07(07-2) 확인 문제 풀고, 풀이 과정 정리하기

 

 

 

1. 다음 중 모델의 add() 메서드 사용법이 올바른 것은 어떤 것인가요?

 

② model.add(keras.layers.Dense(10, activation='relu'))

 

→ 풀이

보통 다음과 같은 형태로 작성하는 것을 권장하지만, 1-라인으로 작성한다면 ②번 형태로 작성하면 된다.

dense1 = keras.layers.Dense(10, activation='relu')
model.add( dense1 )

 

 

2. 크기가 300x300인 입력을 케라스 층으로 펼치려고 합니다. 다음 중 어떤 층을 사용해야 하나요?

 

② Flatten

 

→ 풀이

2차원 입력이 들어오면 1차원으로 변경하는 layer를 배치하면 된다.

 

keras.layers.Flatten(input_shape=(300, 300))

 

 

3. 다음 중에서 이미지 분류를 위한 심층 신경망에 널리 사용되는 케라스의 활성화 함수는 무엇인가요?

 

ⓑ relu

 

→ 풀이

relu 함수의 경우 "max(0, z)" 함수와 같은 형태로써 이미지 분류에서 유용하다.

 

 

4. 다음 중 적응적 학습률을 사용하지 않는 옵티마이저는 무엇인가요?

 

① SGD

 

→ 풀이

SGD(Stochestic Gradient Descent)는 기본 경사 하강법 옵티마이저의 가장 대표적인 위치에 있다.

반응형

뭔가 흐름이 끊겼지만, 포기하기는 싫어서 달려보련다!

목차 1
목차 2

 

 

06-1 군집 알고리즘 (Clustering)

- 비지도 학습

- 이미지(gray, 2차원) 데이터 다루기

 

06-2 k-평균 (KMeans)

- 하이퍼파라미터 (k)

- 최적의 k 찾기 : inertia

 

06-3 주성분 분석 (PCA)

- 차원축소

- PCA

- 설명된 분산 (explained variance ratio)

 

혼공학습 숙제

 

[ 기본 숙제 : k-평균 알고리즘 작동 방식 ]

- 비지도 학습(Unsupervised Learning)의 가장 대표적인 사례가 바로 군집화(Clustering)이다.

- 군집화(Clustering)의 가장 대표적인 알고리즘이 바로 K-평균(K-Means) 알고리즘이다.

 

- centroid(중심점)을 기준으로 데이터들과의 거리를 최소화하는 것을 목표로 한다.

- 거리를 계산하는 여러 방법이 있으나 보통 유클리드 거리(Euclidian Distance) 방식을 사용한다.

 

- 이를 이용하여 K-Means 알고리즘은 다음과 같은 방식으로 최적화 한다.

 

 

[ 추가 숙제 : Ch.06(06-3) 확인 문제 풀고, 풀이 과정 정리하기 ]

 

1. 특성이 20개인 대량의 데이터셋이 있습니다. 이 데이터셋에서 찾을 수 있는 주성분 개수는 몇 개일까요?

→ 주성분 분석(PCA)라는 것은 차원 축소 방법 중 하나로써, 원본 데이터의 특성 개수와 같거나 적을 수 있다.

     그러므로 정답은 ②번이긴 할텐데.... 사실 ①번이라고 해도 틀렸다고 하기 힘들지 않을까 한다.

     "이 데이터셋에서 찾을 수 있는 최대 주성분 개수는 몇 개일까요?"라고 하는 것이 맞을 것 같다.

 

2. 샘플 개수가 1,000개이고 특성 개수는 100개인 데이터셋이 있습니다. 즉 이 데이터셋의 크기는 (1000, 100)입니다. 이 데이터를 사이킷런의 PCA 클래스를 사용해 10개의 주성분을 찾아 변환했습니다. 변환된 데이터셋의 크기는 얼마일까요?

→ 10개의 주성분을 찾아 변환했다고 했으니 당연하게도 ①번이 정답이다.

 

3. 2번 문제에서 설명된 분산이 가장 큰 주성분은 몇 번째인가요?

→ 분산이 큰 것부터 정렬되므로 ①번 첫 번째 주성분의 분산이 가장 크다.

 

그냥 문제 풀기만 하니까 아쉬워서 직접 코드로 증명을 해봤다.

 

 

여기까지~!!

반응형

+ Recent posts