본문 바로가기

Python

TensorFlow 교육 - 1일차 0. AI 개념과 역사 및 활용분야 1. AI 개념 - Symbolic AI - Machine Learning - Deep Learning (1) AI 접근 기법 (모델링 + 알고리즘) - Real world task - Modeling - Formal task (3) Features 2. 머신러닝의 동작원리 - 학습에 의해 지식이 축적되거나 새로운 기능을 습득하거나 혹은 경험이 풍부해지는 등 학습자의 내용 상태가 변화함 - 이 변화는 학습자가 외부 환경에 따라 적합한 방향으로 발현함 - 새로운 문제가 나타났을 때 더 현명하게 문제에 대응할 수 있게 됨 - 머신러닝에서는 기계, 컴퓨터 프로그램이 학습을 수행함 - 컴퓨터 프로그램이 바깥 세상과 상호 작용하여 그 결과에 따라 내용 상태를 변경해 가는 과정 ..
Python Forensics (2) - Concept of Network Programming 네트워크 프로그래밍은 3가지의 definition을 갖는다. (1) Client : 개인용 컴퓨터 및 워크 스테이션에서 실행 (2) Server : 동일 컴퓨터 혹은 다른 컴퓨터의 프로그램 (3) WebSockets : client와 server 사이의 TCP연결을 통해 프로토콜을 제공. 양방향 메시지 전송 위와 같은 그림은 다른 사용자가 보내거나 받은 정보의 유효성을 검사하는데 사용된다. 암호화는 메시지를 보호하는데 사용되는 방법 중 하나로 메시지가 이용하는 채널을 보호하는 것도 중요하다. 클라이언트가 handshaking을 사용하는 python 프로그램을 살펴보자. # client.py import socket # create a socket..
Python Forensics (1) 들어가기에 앞서, 해당 포스팅 시리즈는 tutorialspoint를 기반으로 작성된 포스팅입니다. 파이썬은 읽기 쉽고 이해하기 쉬운 프로그래밍언어이다. 입력으로 돌아갈 수 없어서 brute force attack로 복호화를 하는것은 불가능하다. 참고로 brute force attack이란 암호가 4글자로 이루어진 비밀번호라면 0000~9999까지 대입하여 암호를 알아내는 방식이다. 이런 종류의 알고리즘을 one-way cryptographic algorithm이라고 한다. 이러한 해시 알고리즘은 네 가지 중요 속성을 갖는다. - 주어진 입력에 대해 해쉬 값 계산이 쉽다. - 해시에서 입력을 생성할 수 없다. - 해시를 변경하지 않고 입력을 수정할 수 없다. - 동일한 해시를 가진 두 개의 입력은 없어야 ..
Pyspc를 사용하여 SPC Graph 그리기 2019/05/09 - [계약/SIDE] - Statistical Process Control (SPC) 갑자기 하늘에서 떨어져 내게 온 SPC를 세미 체험해보기 위해 Python을 켰다. SPC에 관련된 내용은 이전 글을 읽자. 그리 어려운 내용은 아니고 그저 내가 원하는 조건에서 벗어나는 친구들이 생기는지 생기지 않는지 감시하는 용도로 간단히 생각하면 될 듯 하다. Python님은 못가진거빼고 다 가지고 계시기 때문에 검색을 통해 라이브러리를 찾아본다. 역시 사귄지 얼마안된 내 친구 파이썬은 원하는 라이브러리가 있었다. 감사한 분에게 인사드리며 pyspc 라이브러리는 다음 주소로 찾아가면 된다. 제공하는 차트는 아래와 같다. pip install pyspc 마법의 주문으로 새로운 라이브러리를 맞이해준..
우리 지역의 성범죄자는 몇 명이나 될까? (1) - python을 이용한 크롤링, 시각화 - 이 포스팅은 실패기입니다. - 모든 사람이 성공할 순 없으니까요 . . . SQL 공부를 하다가 너무 재미없고 막대 그래프 위주 시각화에서 벗어나 지도를 이용한 시각화를 해보고 싶었다. 제일 만만한게 오픈 API이고 그 중에서도 성범죄를 선택하였다. 아무래도 생존과 직결되는 문제니까 말이다. 데이터는 공공 API를 이용했다. 근데 엄~청 접근하기 힘들게 만들어져있다. 어떻게 막은건지 몰라도 직접적으로 검색하기 힘들다..ㅎㅎ 이해X 범죄자 인권이 그렇게 중요한가. 아무튼 이 API는 XML 파일이라 tag를 가져오기만 하면 된다. 이렇게 실시간으로 데이터를 준다. bs4를 이용해 파싱한 이후 가져오면 끝. def get_real_criminal(): data_list = ['강원도', '경기도', '경..
신경망 학습의 핵심 개념 - 오버피팅 오버피팅이란 신경망이 훈련 데이터에만 지나치게 적응되어 그 외의 데이터에는 제대로 대응하지 못하는 상태를 말한다. 신경망은 주어지지 않은(훈련하지 않은) 데이터가 주어져도 바르게 식별해낼 수 있어야 한다. 오버피팅은 다음 두 경우에 일어난다. - 매개변수가 많고 표현력이 높은 모델 - 훈련 데이터가 적은 모델 구글 번역을 생각해보자. 완벽한 것 같지만 가끔 이런 문제가 일어난다. 일부러 판단하기 어렵게 7층 네트워크를 가지고 있으며 훈련 데이터는 300개밖에 주어지지 않은 척박한 신경망을 만들어본다. 활성화 함수는 RelU이다. (x_train, t_train), (x_test, t_test) = load_mnist(normalize=True) x_train = x_train[:300] t_train =..
신경망 학습의 핵심 개념 - 매개변수 갱신 신경망 학습의 목적은 무엇일까? 이는 손실 함수의 값을 낮추는 매개변수를 찾는 것이다. 매개변수의 최적값을 찾는 과정을 최적화라고 한다. 변수는 레이어가 많아질수록 증가하고 적합한 매개변수를 우연히 찾는 것은 불가능에 가깝다. 최적의 매개변수를 찾기 위해서 매개변수의 기울기를 이용했고 기울기에 따라 값을 갱신하여 최적 값을 찾아내었다. 이 기본적인 방법을 확률적 경사 하강법(SGD)라고 한다. (1) 확률적 경사 하강법 $$W → W - \eta\frac{\delta L}{\delta W}$$ class SGD: def __init__(self, lr=0.01): self.lr = lr def update(self, params, grads): for key in params.keys(): params[..