머신러닝

    [PyTorch] 파이토치를 활용한 선형회귀 구현

    (본 포스팅은 PyTorch로 시작하는 딥 러닝 입문 교재를 참고하여 작성하였습니다.) 선형회귀를 구현하기에 앞서 아래 지식이 선행되면 이해하기 더 쉽습니다 :) 가설 (Hypothesis) 손실 함수 (= 목적 함수 = 비용 함수) ; loss function = objective function = cost function 경사 하강법 (Gradient Descent) 공부시간과 시험 성적에 대한 데이터가 아래 테이블처럼 나와있다고 가정해보겠습니다. Study Hours (x) Result (y) 1 20 2 40 3 60 4 ? 1시간 공부 --> 20점 2시간 공부 --> 40점 3시간 공부 --> 60점 4시간 공부 --> ??점 선형회귀를 이용하여 시험 성적을 예측한다면, 아래의 패턴을 학습하..

    [Tensorflow] AutoEncoder 오토인코더 구현하기

    본 포스팅은 Applied Deep Learning - Autoencoders 편을 참고하였습니다. 오토인코드는 입력과 출력이 동일한 피드포워드 신경망의 한 유형입니다. 입력을 의도적으로 낮은 차원의 '코드'로 압축, 이후에 이 압축된 '코드'라는 표현을 기반으로 출력을 재구성(reconstruct)합니다. 코드는 입력의 간결한 "요약" 또는 "압축"이며 '잠재 공간 포현 (latent space representation)'이라고도 합니다. 오토인코더의 구성요소 오토 인코더는 [ 인코더, 코드, 디코더 ] 총 3개의 요소로 구성되어 있습니다. 인코더는 입력을 압축하고, 압축된 입력은 코드가 됩니다. 디코더는 이 코드를 사용하여 입력을 재구성합니다. 아래는 오토인코더의 동작 예시입니다. MNIST의 데이..

    [Zeppelin] M1 맥에서 로컬에 제플린 설치하는 방법

    Zeppelin은 크게 두가지 방법으로 설치할 수 있습니다. 1. 로컬 머신 설치 2. 도커 이미지를 활용한 설치 본 포스팅에서는 로컬 머신 설치에 대해 다뤄보도록 하겠습니다. 우선 아파치 제플린 다운로드 페이지로 접속합니다. 저는 Spark 3.3.2 버전을 사용하고 있는데요. 호환성을 확인한 뒤 환경에 맞는 zeppelin을 설치하면 됩니다. 저는 0.10.0 버전을 설치했습니다. 설치하고자 하는 zeppelin 버전을 정했다면, 해당 파일을 눌러 다운로드 사이트로 들어가줍니다. 위 버튼을 클릭하면 해당 버전을 다운로드 할 수 있는 사이트가 나오는데요. 빨간 밑줄이 쳐진 url을 복사합니다. 이제 터미널로 들어가서 적당한 경로로 접속하여 아래의 커맨드를 이용해 다운받겠습니다. wget https://..

    [불균형 데이터] 평가지표 (Metrics)

    불균형 데이터에 대처하는 방법은 다양합니다. 오버샘플링 & 리샘플링과 같은 Resampling 기법을 활용한다던가, Cost Matrix를 만들어서 분류 모델에 클래스별 가중치를 부여하는 방법도 있습니다. 위 기법도 중요하지만, 무엇보다도 중요한 것은 "어떻게 불균형 데이터를 평가할 것인가?"입니다. (수식과 혼동행렬은 곧 업데이트 하겠습니다) Accuracy 정확도(Accuracy)를 사용하기에는 너무 편향된 결과를 야기할 수 있습니다. 예를 들어보겠습니다. 암 환자에 대해서 검사를 한다고 했을 때, 데이터 내 실제 암 환자는 1명이고, 정상인 환자가 99명 있다고 가정하겠습니다. 우리는 모든 데이터를 음성(정상)이라고 예측하면 모델의 정확도는 99/100, 즉 99%가 됩니다. 이렇게만 본다면 매우 ..

    [변수 중요도] Feature Importance와 Permutation Importance

    머신러닝/딥러닝 모델을 해석하는 방법과 시도가 점점 늘어나고 있다. 변수간의 인과관계를 알려주진 않지만, "어떤 변수가 가장 큰 변화를 만들어냈는지", "특정 변수가 결과에 긍정/부정적인 영향을 끼쳤는지" 등과 같은 결과에 대한 이유에 대해서 해석할 수 있는 방법은 다양한 기법을 통해 알 수 있다. 이번 포스팅에는 그중에서도 Feature Importance와 Permutation Importance에 대해 알아보고자 한다. Feature Importance Feature Importance는 일반적으로 Random Forest와 같은 트리 계열의 앙상블 모델을 사용하면 쉽게 얻을 수 있다. 단순 해석하면 '변수(특징) 중요도' 정도로 해석할 수 있는데, 매커니즘 자체는 불순도를 감소시키는 정보 증가량에..