인공지능 AI

    [딥러닝/인공지능]딥러닝기초_피드포워드/XOR문제해결

    신경망(NN) 개념 사람의 신경망을 구성하는 신경세포 뉴런은 각각의 입력 신호에 최적의 가중치를 곱한 모든 합이 어느 임계값(Threshold)에 도달해야만 다음 뉴런으로 출력신호를 보내는 구조다. 이처럼 입력 신호를 받아서 특정임계값을 넘어서야만 출력을 생성하는 함수를 활성화함수라고 한다. 딥러닝 기초 딥러닝은 입력층, 은닉층, 출력층을 구축한 다음, 출력층의 오차를 기반으로 오차가 가장 작아지도록 각 층 사이에 존재하는 가중치(W2,W3..),각 층의 바이어스(b2,b3...)값을 최적화하는 머신러닝의 한 분야다. 참고로 딥러닝 구조에서 은닉층을 더 사용할수록 결과의 정확도가 높아진다고한다. 은닉층을 깊게할수록 정확도가 높아진다고 하여 '딥'용어가 붙었다. 피드포워드(Feed Forward) 위의 그..

    [머신러닝/인공지능] 선형회귀_분류(Classification)

    분류(Classification) 이산적인 값 True False로 출력값을 내주는 Classification는 선형회귀의 한 타입이다. 시그모이드(Sigmoid)함수 Cross-entropy 연속값을 가지던 선형회귀의 손실함수와는 다른 (이산값을 가지는 선형회귀를 위한) 손실함수가 필요하다. 활성화 함수(Activation Function) Sigmoid와 같이 분류작업을 하는 함수에는 RelU, Tanh도 존재한다. 머신러닝에서 세 가지 모두 잘 쓰인다. 활성화함수는 비선형함수(non-linear function)으로 입력값에 대해 비선형적 대응(분류)를 한다. 그리고 임계값(threshold)(0.5,1값 등)을 기준으로 분류를 가능하게 한다. 분류(Classification) 예제 예제를 통해 분..

    [머신러닝/인공지능] 선형회귀 예제 _단일변수/다변수

    입력변수가 1개인 선형회귀 예제 앞서배운 회귀개념따라서 선형회귀를 구현하려면 y=Wx+b값을 구하고, 오차가 최소가 되는 W와 b를 구해야한다. 이를 실제로 구현할 때는 일반곱셈형식이 아니라 입력값x와 가중치W를 행렬로 변환후 y=W*x+b를 행렬곱으로 구한다. import numpy as np #트레이닝 데이터 준비.초기화 x_data=np.array([1,2,3,4,5]).reshape(5,1) y_data=np.array([2,3,4,5,6]).reshape(5,1) #임의의 W가중치, b바이어스 준비,초기화 W=np.random.rand(1,1) #0~1사이의 값으로 (1*1)행렬 생성 b=np.random.rand(1) #0~1사이의 값 #손실함수 LossFunction def loss_func..

    [머신러닝/인공지능] 수치미분(Numerical Derivative)

    수치미분(Numerical Derivative C언어나 파이썬같은 프로그래밍언어를 이용하여 미분값, 즉 입력 값이 아주 미세하게 변할 때 함수 f는 얼마나 변하는지 계산하는 것. 변수가 1개인 함수의 수치 미분 파이썬으로 구현한 코드 import numpy as np #미분공식 구현 def simple_derivative(f,var): #f는 외부에서 lamda등으로 정의한 함수, x는 미분을 알고자하는 입력값 delta=1e-5 #극한 구현 diff_val = ( f(var+delta) - f(var-delta) ) / (2*delta) #미분값 계산 return diff_val #미분 대상 함수 def func1(x): return x**2 ret_val=simple_derivative(func1,3..

    [머신러닝/인공지능]편미분(Partial Derivative)과 체인룰(Chain Rule)

    우리가 미분을 통해 얻을 수 있는 인사이트는 입력x를 현재값에서 아주 조금 변화시키면 f(x)는 얼마나 민감하게 반응하는지다. 편미분(Partial Derivative) 입력 변수가 2개 이상인 다변수 함수에서 미분하고자 하는 변수 1개를 제외한 나머지 변수들은 상수로 취급하고, 특정한 한 변수에 대해서만 미분하는 것. 편미분 활용: 체중(야식, 운동) 현재 먹는 야식의 양(현재변수)에서 조금 변화를 줄 경우 체중은 얼마나 변하는가? a체중 ------- a야식 현재 하고 있는 운동량에 조금 변화를 줄 경우 체중은 얼마나 변하는가? a체중 ------- a운동 체인룰(Chain Rule) 합성함수를 미분하기 위해 사용(합성함수란 여러 개의 함수로 구성된 함수) 합성함수를 미분할 때 분모와 분자에 동일한 ..

    [머신러닝/인공지능] 머신러닝 기초 개념_지도학습/비지도학습/선형회귀/손실함수/오차/가중치/바이어스

    지도학습(Supervised Learning) 타입1) 회귀(Regression) 타입2) 분류(Classification) 1. 정답을 포함하고 있는 트레이닝 데이터를 입력으로 2. 트레이닝 데이터를 이용하여 학습 3. 학습된 결과를 바탕으로 TestData와 같은 미지의 데이터가 주어졌을때 4.그 데이터의 미래값을 예측 비지도학습(Unsupervised Learning) 학습데이터에 정답은 없고 입력값만 있음. 주로 군집화 알고리즘 이용. 입력값의 분포와 특성을 파악해서 정답값의 범위를 알아내 그룹화 시킨다. 선형회귀(Linear Regression) 학습(Learning)_오차(error)/가중치(weight)/바이어스(bias) 손실함수(Loss Function 또는 Cost Function) 직..

    [딥러닝/머신러닝]논리게이트 XOR문제(XOR problem)

    Logistic Regression(미분)을 이용했을때 (추후에 Logistic Regression 게시글도 게시예정) XOR 게이트를 구현이 불가능하다. AND, OR, NAND게이트는 1개의 분류 시스템만으로도 구현가능하지만 XOR게이트는 여러개의 분류시스템을 조합해서 구현해야한다. 그래서 미분을 사용했던 머신러닝이 아닌 (머신러닝의 다른 한 분야인) 딥러닝을 이용한다. 딥러닝의 핵심 아이디어가 여러 분류 시스템을 조합하여 데이터 특성과 상관관계를 분석하는 것이다. 기본적으로 우리가 알고 있는 AND OR NAND XOR게이트의 정답 데이터는 AND: 0001 OR:0111 NAND:1110 XOR:0110 이다. 입력데이터는 각각 ([0,0],[0,1],[1,0],[1,1])이다. (입력 데이터는 ..