728x90

전체 글 41

Binary Classification with a Software Defects Dataset With Optuna

저번에 나갔던 대회 코드에 Optuna를 적용해서 하이퍼 튜닝을 해보겠다. Optuna는 매 trial마다 정해진 범위에서 suggest된 하이퍼파라미터 값을 이용해서 trial을 진행하고 매 trial은 이전 trial의 기록을 확인해서 좋은 점수대가 나오는 곳을 기준으로 집중적으로 학습한다고 했다.(이게 진짜인지가 젤 궁금해서 실험해봤다.) 당연히 무작정 모든 경우의 수를 비교할려는 GridSearch보다 효율적일거라고 생각했지만 점수가 과연 더 좋게 나올까라는 의구심이 들어 기존 대회에서 만들었던 코드를 수정해 봤다. skf = StratifiedKFold(n_splits = 10, shuffle=True,random_state=42) import numpy as np from sklearn.mod..

Optuna

1. Optuna ? 좋은 모델을 통해 예측을 높일려면 그 모델에 좋은 하이퍼파라미터를 설정해야 한다. 하지만 일일히 최적화를 하는건 매우 귀찮은 일이다. 파라미터 값을 조정하면서 모델 수행 모델 검증 과정을 반복하면서 하이퍼 파라미터 값을 변경해 나간다. 이를 도와주는 것이 Optuna 하이퍼파라미터 최적화 프레임 워크이다. 파라미터의 범위를 지정해주거나, 파라미터가 될 수 있는 목록을 설정하면 매 Trial 마다 파라미터를 변경하면서, 최적의 파라미터를 찾는다. 2. Key Features 가볍고 다용도이며 플랫폼에 자유롭게 이용 가능 요구사항이 거의 없는 간단한 설치로 다양한 작업 처리 가능 Pythonic search spaces 조건과 반복문을 포함한 친숙한 파이썬 구문을 사용하여 검색 공간을 ..

데이터 & AI 2023.11.01

퍼셉트론

* 퍼셉트론 ?? : 퍼셉트로은 프랑크 로젠 블라트가 1957년에 고안한 알고리즘으로 알려져 있습니다. 수치 그대로 이 알고리즘은 신경망(딥러닝)의 기원이라고 볼 수 있습니다. 그래서 퍼셉트론의 구조를 배우는 것은 신경망과 딥러닝으로 나아가는데 중요한 아이디어를 배우는 일도 됩니다. 목차 1. 퍼셉트론 1.1 퍼센트론이란? 퍼셉트로은 다수의 신호를 입력으로 받아 하나의 신호를 출력합니다. 여기서 말하는 신호는 전선을 타고 흐르는 전류라고 생각하면 편합니다. 전류가 전선을 타고 흐르는 전자를 내보내듯 퍼셉트론 신호도 흐름을 만들고 정보를 앞으로 전달합니다. 퍼셉트론 신호는 흐른다/안 흐른다의 (1/0) 두 가지 값을 가질 수 있습니다. 위에 그림은 입력으로 2개의 신호를 받은 퍼셉트론의 예이다. x1과 x..

혼공 머신러닝 딥러닝 CH)08-3

합성곱 신경망의 시각화 합성곱 층의 가중치와 특성 맵을 시각화하여 신경망이 이미지에서 어떤 것을 학습하는지 이해해 보자 이번에는 합성곱 층의 가중치와 특성 맵을 그림으로 시각화해 보겠다. 이를 통해 합성곱 신경망의 동작원리에 대한 통찰을 키울 수 있다. 지금까지는 케라스의 Sequential 클래스만 사용했다. 케라스는 좀 더 복잡한 모델을 만들 수 있는 함수형 API를 제공한다. 이번 절에서 함수형 API가 무엇인지 살펴보고 합성곱 층의 특성 맵을 시각화하는데 사용해 보겠다. 이 절에서는 2절에서 훈련했던 합성곱 신경망의 체크 포인트 파일을 사용한다. 이 파일은 최적의 에포크까지 훈련한 모델 파라미터를 저장하고 있다. 가중치 시각화 합성곱 층은 여러 개의 필터를 사용해 이미지에서 특징을 학습한다. 각 ..

혼공 머신러닝 딥러닝 CH)08-2

합성곱 신경망을 사용한 이미지 분류 케라스 API를 사용해 합성곱 신경망 모델을 만들어 패션 MNIST 이미지를 분류하는 방법을 배운다. 텐서플로 케라스 API를 사용해 7장에서 만들었던 패션 MNIST 데이터를 합성곱 신경망으로 분류해 보겠다. 패션 MNIST 데이터 불러오기 데이터 스케일을 0 ~ 255사이에서 0~1 사이로 바꾸고 훈련 세트와 검증 세트로 나눈다. 이전과 다른 점은 차원 처리 부분이다. 완전 연결 신경망에서는 입력 이미지를 밀집층에 연결하기 위해 일렬로 펼쳐야 한다. 이 작업을 위해 넘파이 reshape()메서드를 사용하거나 Flatten 클래스를 사용했다. 하지만 합성곱 신경망은 2차원 이미지를 그대로 사용하기 때문에 이렇게 일렬로 펼치지 않는다. 하지마안 입력 이미지는 항상 깊이..

728x90