머신러닝 283

윈도우즈 10 아나콘다3(64비트) 설치 및 가상환경 설정

PC에서 머신러닝 파이선 코드 작성을 위한 아나콘다(Anaconda Front End) 를 설치하고 사용자별로 필요한 라이브러리들로만 지원되는 가상공간을 설정하여 활용해 보도록 하자. PC에서 가상공간(Virtual Environment)이라 함은 컴퓨터 내에 하나의 가상적인 울타리를 설정한 후에 필요한 소프트웨어들을 종속적으로 엮어 넣어 사용하되 가상공간 외부에 아무런 영향을 미치지 않는 전용 공간을 의미한다. 윈도우즈 10에 새로이 설치하는 분들은 아나콘다 홈페이지에서 64비트 installer.exe 버전을 다운받아 그대로 실행시킨 후 시작 바에 Anacond3(64비트) 가 설치되어 있는지 확인하고 그 안에 Anaconda Navigator 아이콘이 설치되어 있으면 실행하도록 하자. 아래의 그림은..

머신러닝 2022.07.23

심전도 데이터 Time Series Anomaly Detection

Intro to Autoencoders https://developer.habana.ai/tutorials/tensorflow/intro-to-autoencoders/ 기계장치의 Anomaly Detection 보다 흥미로울 수 있는 ECG5000 심전도 데이터세트를 사용하는 시계열상의 Anomaly Detection 코드를 고려하자. 헤더 영역에서 불러들여야 할 라이브러리들을 살펴보자. fashion_mnist 는 심전도 문제와는 연관이 없으므로 제외 가능하다. 여러 곳에서 ECG5000 데이터세트를 다운받을 수 있으나 여기서는 구글 텐서플로우 사이트로부터 다운 받자. 로드한 raw_data 리스트에 심전도 데이터와 라벨 값이 함께 들어 있으므로 분리해 내도록 한다. raw_data는 마지막이 라벨 데..

머신러닝 2022.02.13

Keras 기초 예제: Time series anomaly detection using an Autoencoder

※파이선 코딩 초보자를 위한 텐서플로우∙OpenCV 머신 러닝 2차 개정판 발행 http://blog.daum.net/ejleep1/1175 파이선 코딩 초보자를 위한 텐서플로우∙OpenCV 머신 러닝 2차 개정판 (하이퍼링크) 목차 pdf 파일 본서는 이미 2021년 11월 초부터 POD코너에서 주문 구입이 가능합니다. 참고로 책 목차에 따른 내용별 학습을 위한 코드는 이미 대부분 다음(Daum)블로그에 보관되어 있으며 아래에서 클릭하면 해당 blog.daum.net https://keras.io/examples/timeseries/timeseries_anomaly_detection/ 본 블로그의 내용은 위 url 주소에 있는 일차원 CNN 기법에 의한 기계이상을 알아내는 keras 머신러닝 예제코드에..

머신러닝 2021.12.28

스마트폰 촬영 데이터를 사용한 식물 Fresh/Wilt 판별 Keras 학습 코드 작성

http://blog.daum.net/ejleep1/1034 :Keras에 디펜바키아 Fresh/Wilt 학습 판정 블로그를 참조 후 읽어 보도록 하자. Keras에 의한 공기정화식물의 건강상태 이미지 학습 코드를 작성하기 위해서 건강 상태 별로 사진 이미지를 저장하기 위한 폴더들의 경로를 정확하게 설정하자. 현재 Dataset 폴더에는 공기정화식물의 두 종류의 대비되는 상태 즉 싱싱한(Fresh) 상태와 시들시들(Wilt)한 상태의 이미지를 각각 10개씩 포함하는 폴더들이 들어 있다. 이 이미지들은 VGA 해상도 기준 즉 640X480 기준으로 비슷비슷하지만 같지는 않다. 하지만 Keras에서 입력하는 과정에서 자동적으로 (224, 224)로 처리하게 된다. 아래와 같은 해상도라면 입력 데이터로 포함해..

머신러닝 2021.09.17

암호화폐 상대강도지수 파이선 알고리듬:Python Cryptocurency RSI(Relative Strength Index)

바이낸스(Binance)의 오픈(public) API를 사용하여 그래픽 지원 라이브러리인 Plotly를 사용하여 인터액티브 한 가격 캔들 커브를 작성하였다. 오픈 API를 통해 입수되는 암호화폐의 시가, 저가, 고가 및 종가 데이터 중에서 종가 정보를 사용하여 앞서의 코드 이후에 셀을 추가하여 RSI(상대강도지수)를 계산해보자. J. Welles Wilder 가 창시한 상대강도지수(Relative Strength Index) RSI는 증권이나 코인의 가격 움직임을 측정하기 위한 대표적인 모멘텀 지표(indicator)이다. 0~100 사이의 값을 가지는 RSI는 그 값이 70 이상이면 과매수(overbought) 상태이며 30이하이면 과매도(oversold) 상태로 정의한다. 1978년에 출판한 Wild..

머신러닝 2021.07.18

Covariance 항을 포함한 softmax classifier의 XOR 로직 적용

XOR 로직 계산은 Rosenblatt 의 퍼셉트론 연구로부터 잉태되었던 뉴럴 네트워크 발전의 중요한 고비로 기억된다. 1969년에 MIT 민스키 교수가 그의 저서 퍼셉트론에서 Rosenblatt 의 퍼셉트론으로는 XOR 로직 계산이 불가능하다고 부정적인 의견을 제시했던 바로 그 문제로서 1971년에 퍼셉트론 개발의 주역이었던 Rosenblatt 이 사고로 사망하면서 이 문제의 해결을 보지 못했다. 아울러 1970년대에 들어서면서 인공지능 및 머신 러닝 분야의 연구개발 지원이 완전히 끓어지면서 인공지능 발전의 암흑기에 들어서게 된다. 하지만 MIT의 민스키 교수가 퍼셉트론으로 처리 할 수 없는 영역을 건드렸던 것이 사실이긴 하지만 그래도 인공지능의 발전을 위한 단서 정도는 남긴 듯하다. 즉 XOR 로직 ..

머신러닝 2021.07.12

99% MNIST CNN 예제 코드

Github에서 흔히 구할 수 있는 오픈 소스인 CNN을 사용한 MNIST 문제의 99% 인식률을 보기위한 기본적인 파라메터 설정에 관해서 알아보자. 컴퓨팅 시간을 줄이기 위해서 trainning_epochs 값을 1로 취했을 때 1분의 컴퓨팅 타임으로 97%의 인식률이 얻어진다. MNIST 숫자 데이터베이스는 데이터 수가 엄청 많으므로 session.run 단계에서는 100개씩 데이터를 샘플링 하여 batch job을 만들어 실행시키게 된다. 가장 간단한 CNN이라 해도 적어도 2단에 걸친 컨볼류션 처리가 필요하다. 즉 28X28 1개 데이터에 대해서 reshaping 한 후 3X3 필터를 32개 준비하여 컨볼루션 처리 후 relu()를 적용하고 최대값을 pooling 하면 14X14 이미지 매트릭스가..

머신러닝 2021.07.10

MNIST 문자 “3” 대상 CNN Filtering, Pooling 예제 코드

CNN이 지금까지 다루어 보았던 NN 코드보다 구조도 복잡하고 길이가 길어 처음 접할 경우 상당히 복잡하다고 느낄 수도 있을 것이다. 이미 임의의 숫자 이미지 예제를 통해 CNN 코드 구조 자체는 소개를 하였으나 아무래도 임의의 숫자 이미지라고 하는 것은 우리 감각에 와 닿지는 않는 듯하다. 완전한 MNIST 문제의 CNN 인식 코드를 사용하기 전에 MNIST의 문자 하나를 끄집어 내어 필터를 적용해서 원 이미지가 어떤 형태로 처리되는지 관찰해 보고 아울러 MAX Pooling 기법도 적용하여 어느 정도까지 이미지가 변화되어 나가는지 관찰해 보자. MNIST 문자의 종류가 불과 0∼9 이므로 어느 문자를 택해도 큰 문제는 없다. 하지만 MNIST CNN을 가시적으로 볼 수 있는 방법은 이 방법 외에는 있..

머신러닝 2021.07.10

애매모호한 이미지에 대한 인간 시지각의 XOR 논리처리 특성과 뉴럴 네트워크

같은 대상을 보고 서로 다른 이미지로 인식하게 되는 흥미로운 사례를 살펴보자. 당신은 위 그림에서 검은 색 두 대머리가 마주 보고 있다는 것을 인식할 수 있는가? 아니면 가운데 백색의 와인 잔을 인식할 수 있나요? 어느 것으로 인식이 되더라도 당신의 시지각 기능은 정상이다. 만약 두 종류의 대상이 동시에 인식되나요? 녜 안 된다면? 그래도 당신은 정상이다. 녜 된다면? 굉장히 이상스러운(weird, awesome) 결과로 보인다. 혹 외계인이 피가 섞인 것은 아닐까? 재미있는 점은 시지각 능력이 백색 잔인지 두 대머리인지 동시에 인식하기가 어렵다는 점이다. 즉 “모 아니면 도“ 방식으로 인식된다는 점이다. 그러한 측면에서 보면 사람의 시지각 기능은 아날로그성이라기 보다는 디지털한 경향이 강한 듯하다. 위..

머신러닝 2021.07.10

MNIST CNN Image Classification History

컨볼루셔널 뉴럴 내트워크(CNN)는 MNIST 수기숫자 인식 문제를 연구했던 LeCun에 의해서 꽃을 피우게 된다. MNIST 수기 숫자들은 텍스트가 아니라 사진 이미지이기 때문에 동식물이나 사람의 얼굴처럼 일단 그래픽으로 봐야 한다. 따라서 filtering, pooling 및 back-propagation 적용으로 MNIST 문제의 인식률이 상당히 개선되었으며 그 기법들은 LeNet이라 불리우며 지금까지도 CNN에 그대로 사용되고 있다. 한편 2001년에는 Viola-Jones가 사람의 얼굴을 실시간으로 인식하기 위한 Haarcascade 알고리듬을 고안하였다. 사람 안면의 부분적인 이미지 요소들을 분석하여 안면 특징을 추출한다는 측면에서 LeCun의 필터링과 공통점을 가진다. 하지만 LeCun의 알..

머신러닝 2021.07.10