텐서플로우 8

[모두를 위한 딥러닝] 합성곱 신경망(CNN)

고양이의 인식 반응 인간은 인공신경망을 만들 때, 뇌를 구성하는 뉴런과 그것이 연결된 구조를 참고했다. CNN 역시, 뇌의 실제 작동방식에 대해 영감을 받아 만들어진 신경망이다. 신경과학자 Hubel과 Wiesel은 한 실험에서 고양이가 화면을 바라볼 때의 뉴런의 반응을 관찰했다. 그 결과, 화면의 어느 곳이 바뀌느냐에 따라 활성화되는 뉴런이 다른 것을 알 수 있었다. 여기서 영감을 얻어 화면에 구역별로 뉴런이 대응되는 형태의 신경망을 생각해냈고, 이것이 CNN이다. 컨벌루션 레이어 5×5 이미지가 주어졌다. 우리는 이것을 '필터'를 낀채, 3×3씩 볼 것이다. 이미지에서 가장 첫 위치에 필터를 놓았다. 필터에는 이미지를 어떻게 볼 것인지 어떤 '가중치'가 적용되어 있고 이것을 토대로 이미지에서 하나의 ..

💻/ML 2020.08.23

[모두를 위한 딥러닝] 활성함수, 초기화, 정규화

활성함수 우리는 SIGMOID 함수를 로지스틱 회귀에서 처음 배웠고, 0에서 1사이의 값으로 데이터를 필터링 해준다는 정도로 알고 있다. 그리고 이 함수는 인간으로 따지면, 뉴런에서 자극을 해석하여 다른 뉴런으로 신호를 만들어 보내는 역치와 비슷한 역할을 한다. 이것을 인공신경망에서는 뉴런을 활성화시켜준다는 뜻으로 '활성함수'라고 부르게 된다. 활성함수에는 SIGMOID만 있는 것이 아니다. 사실 SIGMOID는 치명적인 약점을 가지고 있기 때문에 잘 사용하지 않는다. SIGMOID함수의 출력은 항상 1보다 작기 때문에, SIGMOID함수를 통과한 값들은 서로 곱할수록 점점 줄어들 수 밖에 없다. 비슷한 이유로 우리가 신경망을 학습시키는 방법 '오차역전파'는 뒤로 갈 수록 점점 그 값이 희미해진다. 처음..

💻/ML 2020.08.17

[모두를 위한 딥러닝] 인공신경망, 오차역전파

인간의 지능 인공지능은 말 그대로, 사람이 만든 '지능(Intelligence)'이다. 인간의 입장에서 지능을 개발하기 위해서 인간의 '뇌'의 매커니즘이나 구조를 참고하는 것은 합리적이라고 할 수 있다. 뇌는 여러 뉴런들이 서로서로 그물처럼 연결되어 있는 신경망(Neural Network)의 구조를 가지고 있다. 바로 뉴런의 작동원리를 알아보자. 먼저, 나무의 가지처럼 되어 있는 수상돌기(dendrite)를 통해 자극을 받아들인다. 하지만 이 자극이 너무 작다면, 뉴런에는 아무 일도 일어나지 않는다. 따라서 뉴런에서 신호를 발생시키기 위한 최소한의 자극, 즉 '역치'이상의 자극이 가해져야 한다. 만약 충분한 자극으로 전기신호가 발생했다면, 이는 계속해서 전달되어(axon) 나간다. 이 전기신호가 말단부(..

💻/ML 2020.08.11

[모두를 위한 딥러닝] 학습계수, 데이터 표준화, 과적합

# 학습계수(하강간격)을 설정한다. learning_rate = 0.1 # 해당 지점의 기울기를 계산한다. gradient = tf.reduce_mean((W * X - Y) * X) # 기울기에 하강간격을 곱한 값을 W에 빼줘서 하강한다. descent = W - learning_rate * gradient # 해당 텐서에 업데이트 해준다. update = W.assign(descent) # tf.GradientDescentOptimizer(learning_rate=0.01) 학습계수 이전에 "[3] 텐서플로우 기초, 선형회귀" 에서 '하강 간격을 조정하기 위한 상수' 쯤으로 언급하고 넘어갔었던 개념이다. 위의 과정은 텐서플로우에 구현되어 있는 예쁜함수 GradientDescentOptimizer()의..

💻/ML 2020.08.04

[모두를 위한 딥러닝] 로지스틱 회귀

공부시간(X)을 늘리면 더 좋은 성적(Y)을 받는 것은 통계적으로 합당할 것이다. 1시간 공부한 사람은 20점, 3시간 공부한 사람은 60점, 4시간 공부한 사람은 80점을 받고, 이는 선형적인 관계에 있다고 할 수 있다. 하지만 모든 데이터가 항상 이런 선형적인 관계에 있는 것은 아니다. 로지스틱 회귀 합격과 불합격으로만 결과가 나오는 P/F 상황을 가정해보자. 1시간 ~ 3시간 공부한 사람은 불합격을 받고, 4~6시간 공부한 사람은 합격을 받았다. 합격=1, 불합격=0 으로 봤을 때 다음 상황을 X=[1, 2, 3, 4, 5, 6], Y=[0, 0, 0, 1, 1, 1] 로 말할 수 있고, 이 데이터를 학습에 이용할 수 있을 것이다. 평소처럼 우리가 H(X) = X*W + b로 가정을 한다면 다음과 ..

💻/ML 2020.07.27

[모두를 위한 딥러닝] 작업환경 설정(파이썬, 텐서플로우)

구성확인 파이썬과 텐서플로우(GPU)를 이용해서 예제를 연습할 것이다. 먼저 tensorflow 홈페이지에서 조합표(?)를 보고 어떤 버전을 설치할지 정해야 나중에 처음부터 다시하는 일이 없을 것이다. https://www.tensorflow.org/install/source_windows Windows의 소스에서 빌드 | TensorFlow 소스에서 TensorFlow pip 패키지를 빌드하고 Windows에 설치합니다. 참고: 잘 테스트되고 사전 빌드된 Windows 시스템용 TensorFlow 패키지가 이미 제공되고 있습니다. Windows용 설정 다음 빌드 도구를 설치�� www.tensorflow.org 설치방법 버전이 결정되었다면, 아래 영상을 그대로 따라 하는 것이 오류 없이 깔끔하다. ht..

💻/ML 2020.07.26

[모두를 위한 딥러닝] 인공지능, 머신러닝

인공지능 우리에게 인공지능은 더이상 낯설지 않다. 인공지능(AI)은 인간이 하는 사고나 행동의 과정을 따라 기능하도록 구현한 시스템을 말한다. 우리가 좋아할 만한 동영상을 추천해주는 유튜브 알고리즘도, 얼굴을 인식해서 잠금을 풀어주는 스마트폰도 인공지능이다. 직관적인 판단이 필요한 바둑에서, 정점에 위치한 프로기사를 꺾어 수많은 사람들에게 충격을 주었던 '알파고' 역시 인공지능이다. 그렇다면 어떻게 인공지능은 우리가 원하는 것을 찾아내고, 얼굴을 알아보다 못해, 바둑에서 이세돌을 이길 수 있었던 것일까? 머신러닝 인공지능의 핵심에는 '학습'이라는 요소가 있다. 인공지능은 환경과 상호작용하며 정보를 얻는다. 그리고 그 정보를 이용해 목적에 맞게 예측하거나 새로운 규칙을 찾을 수 있도록 학습한다. 이 과정을..

💻/ML 2020.07.26

[머신러닝] 공부 시 참고 링크

머신러닝 공부 순서, 방법 및 강의 정리 이번 포스팅에서는 작년부터 머신러닝 공부를 시작하면서 들었던 강의와 머신러닝 공부 방법에 대해서 정리해보려고 한다. 필자도 아직 머신러닝을 마스터하려면 갈 길이 멀었지만, 그간 공부� gomcine.tistory.com 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 강화학습 알아보기(1) - 가치 함수 · greentec's blog 강화학습 알아보기(1) - 가치 함수 10 Feb 2019 • 0 Comments 강화학습이란? 2016년에 있었던 딥마인드의 알파고(AlphaGo)와 이세돌 9단의 대국은 인공지능이 세계 최초로 프로 최고수급의 인간을 바둑에�� greentec.github.io 1. 파이썬(Python) 및 텐서플로우(Tensor..

💻/ML 2020.07.25