본문 바로가기

AI/이론

(60)
[ML] Perceptron1 - 시작 1. 인공신경망과 딥러닝의 시작 "인공신경망(Neural Network)과 딥러닝(Deep Learning)은 퍼셉트론이 처음이다!"라고 말할 수 있을 것입니다. 많은 사람들이 "인공지능 = 신경망"이라고 생각하는 분들이 많은데 그 만큼 인간이 예측하기 힘든 부분을 신경망이 보여주기 때문에 인공지능이란 컴퓨터가 하는 행위(또는 생각)를 인간이 알아차리지 못하는 것으로 해석하는 분들이 많습니다. 2. 퍼셉트론(Perceptron) 동작 설명 퍼셉트론의 동작은 노드(뇌로 따지면 뉴런)의 가중치와 입력치를 곱한 것을 모두 합한 값이 임계치보다 크면 활성화되고, 1을 출력하며, 활성화되지 않으면 결과값으로 0을 출력하는 것입니다. 이를 그림으로 표현하면 아래와 같습니다. 갑자기 어려워지나요? 활성화라는 말과 노..
[ML] Loss Function 딥러닝 혹은 머신러닝은 컴퓨터가 가중치를 찾아가는 과정이다. 일단 아래 예를 보도록 해보자. 4 = 2a + b 6 = 3a + b 이와 같은 문제가 있다고 가정을 해보자, 사람들에게 a와 b에 들어가야 되는 답은 무엇인가? 라고 물어본다면 값을 대입해서 문제를 풀어본다던지 직관적으로 풀어본다던지 아니면 여러가지 공식을 써서 풀어본다던지 할 것이다. 2번과 3번과 같은 경우 컴퓨터에게 시키기에는 매우 힘든 작업이다. 반대로 값이 엄청 많을 경우 1번은 인간에게 힘들 수 있다. 물론 위의 문제는 너무 쉽기 때문에 값을 대충 대입해서도 충분히 맞출 것이다. 컴퓨터는 기본적으로 첫번째 방법인 값을 대입해서 문제를 풀어본다. 그래서 대입한 결과와 실제 정답간의 간격 즉, 차이를 최대한 줄이는 방향으로 값을 대입..
[ML] Gradient Descent1 gradient descent 방법의 직관적 의미 gradient descent 방법은 steepest descent 방법이라고도 불리는데, 함수 값이 낮아지는 방향으로 독립 변수 값을 변형시켜가면서 최종적으로는 최소 함수 값을 갖도록 하는 독립 변수 값을 찾는 방법이다. steepest descent 방법은 다음과 같이 많이 비유되기도 한다. 앞이 보이지 않는 안개가 낀 산을 내려올 때는 모든 방향으로 산을 더듬어가며 산의 높이가 가장 낮아지는 방향으로 한 발씩 내딛어갈 수 있다. gradient descent의 목적과 사용 이유 gradient descent는 함수의 최소값을 찾는 문제에서 활용된다. 함수의 최소, 최댓값을 찾으려면 “미분계수가 0인 지점을 찾으면 되지 않느냐?”라고 물을 수 있는데,..
[ML] Activation1 - 종류 및 설명 앞서 Neural Network에 대해서 배워보았습니다. 다시 Neural Network를 살펴볼까요? 아래그림중에 f라고 표시된 activation function이 담당하고 있는 역할이 뭘까요? 본래 뉴런은 여러 경로를 통해 들어온 전기신호의 합이 일정치 이상이 되면 다음 뉴런으로 신호를 전달하게 됩니다. 앞서 언급한 "일정치 이상이 되는 기준"이 Activation function이 되는 것입니다. 예를 들어, 일정 값 이상이 되면 1을 출력하여 다음 뉴런에 값을 전달해 주고, 일정 값 이하가 되면 0을 출력하여 다음 뉴런에 값을 전달해주지 않게 합니다. 사실 굳이 출력 값을 activation function을 통해 0 or 1 값으로 범위를 한정하는 것이 얼마나 큰 의미를 갖고 있는지는 모르겠습..
[ML] Ensemble, Boosting bagging : variance를 감소시키는 역할 boosting : bias를 감소시키는 역할 bagging은 병렬로 학습, boosting은 순차적으로 학습 ( 가중치 재분배를 위해서 ) Boosting AdaBoost / Gradient Boost 가중치 평균을 사용하여 약한 학습자를 더 강력한 학습자로 만드는 알고리즘 그룹을 말한다. "teamwork"에 관한 것 실행되는 각 모델은 다음 모델에 집중할 feature을 결정한다 차례대로 하나는 다른 것으로부터 배우고, learning을 boosting함 1. Gradient Boost gradient boosting regression tree는 여러 개의 decision tree를 묶어 강력한 model을 만드는 ensemble기법입니다. ra..
[ML] Ensemble, Bagging (bootstrap aggregating) - Random Forest bagging : variance를 감소시키는 역할 boosting : bias를 감소시키는 역할 bagging은 병렬로 학습, boosting은 순차적으로 학습 ( 가중치 재분배를 위해서 ) Bootstrap Aggregation (Bagging) 교체된 random sampling을 말한다. 부트스트랩을 사용하면 데이터 세트의 bias(편향)와 variance(분산)을 더 잘 이해할 수 있다 데이터 세트에서 작은 데이터 하위 집합을 random sampling한다 decision tree처럼 분산이 높은 알고리즘의 분산을 줄이는데 사용할 수 있는 일반적인 절차이다. Bagging은 각 모델을 독립적으로 실행한 다음 어떤 모델을 선호하지 않고 마지막에 출력을 집계한다. Problems with Deci..
[ML] Ensemble Ensemble의 목표는 "과적합 최소화"입니다. 여러개의 모델들에서 얻은 데이터로 내가 취사선택하여 사용한다면 아무래도 한개의 모델에서 나온 결과만을 적용할때보다는 유연성이 생길것입니다. 하지만, 당연하게도 여러모델을 한번에 돌리기에 연산량이 엄청납니다.. [코드로 이해하는 딥러닝 17] - Ensemble with CNN [코드로 이해하는 딥러닝 0] - 글연재에 앞서 https://limitsinx.tistory.com/27 [코드로 이해하는 딥러닝 1] - Tensorflow 시작 https://limitsinx.tistory.com/28 [코드로 이해하는 딥러닝 2] - Tensorflow 변.. limitsinx.tistory.com boosting 기법 이해 (bagging vs boosti..
[ML] 참고 ganghee-lee.tistory.com/31?category=841638 딥러닝 역전파 backpropagation이란? 이전 글에서 설명했듯이 활성화 함수를 적용시킨 MLP에서 XOR과 같은 non-linear 문제들은 해결할 수 있었지만 layer가 깊어질수록 파라미터의 개수가 급등하게 되고 이 파라미터들을 적절하게 ganghee-lee.tistory.com
[ML] CNN Figure 2. Overview and details of a convolutional neural network (CNN)... Download scientific diagram | Overview and details of a convolutional neural network (CNN) architecture for image recognition. (a) Zoom in on a three-channel RGB input, convolution + activation function, e.g., Rectified Linear Unit (ReLU) (blue) and adjace www.researchgate.net 그림이 예쁘게 정리가 잘 돼있어서 저장한다.
dropout 적용코드 살펴보기 드롭아웃이란 트레이닝 중 오버피팅이 발생하는 것을 막기 위해 일부 뉴런이 동작하지 않도록 하는 것이다. CIFAR-10 이미지 분류를 위한 CNN을 구성해보자! (Keras) Overview이 문서에서는 CIFAR-10 dataset에 대한 이미지 분류를 Keras를 사용한 CNN(Convolution Neural Network)로 구현해보도록 하겠습니다. gruuuuu.github.io 은닉층에 드롭아웃(dropout)을 확률 pp 로 적용하는 경우, 은닉 유닛들을 pp 확률로 제거하는 것이 됩니다. 이유는, 그 확률을 이용해서 출력을 0으로 설정하기 때문입니다. 이를 적용한 네트워크는 아래 그림과 같습니다. 여기서 h2h2 와 h5h5 가 제거되었습니다. 결과적으로 yy 를 계산할 때, h2h2 와 ..
기계학습과 데이터마이닝 ‘데이터 마이닝’ – 다양한 관점에서 데이터를 분석해 의미 도출 ‘데이터 마이닝’은 보유한 데이터를 다양한 관점에서 분석하고 그 결과를 유용한 정보로 조합하는 일을 가리킨다. 방대한 데이터 속에 숨어 있던 패턴과 상관성을 통계적 수법들로 식별해 내 가치를 부여한다. 데이터 마이닝은 숫자가 아닌 데이터도 처리한다는 점에서 통계처리와 구분된다. 예를 들면 프로축구 선수들의 패스, 어시스트, 골 등 숫자로 표현되는 데이터 외에도 게임 중 행하는 동작이나 역할들까지 선수의 가치로 환산해서 연봉 책정의 기준으로 삼는다. 데이터 마이닝이 관심을 끄는 이유는 방대한 양의 데이터 속에 감춰진 정보나 지식을 잘 도출해 내 널리 활용할 수 있기 때문이다. 이렇게 얻은 지식은 위험 관리, 비즈니스 관리, 생산 관리, 시장 ..
인공지능, 기계학습, 데이터 마이닝 1. ‘데이터 마이닝’ – 다양한 관점에서 데이터를 분석해 의미 도출 ‘데이터 마이닝’은 보유한 데이터를 다양한 관점에서 분석하고 그 결과를 유용한 정보로 조합하는 일을 가리킨다. 방대한 데이터 속에 숨어 있던 패턴과 상관성을 통계적 수법들로 식별해 내 가치를 부여한다. 데이터 마이닝은 숫자가 아닌 데이터도 처리한다는 점에서 통계처리와 구분된다. 예를 들면 프로축구 선수들의 패스, 어시스트, 골 등 숫자로 표현되는 데이터 외에도 게임 중 행하는 동작이나 역할들까지 선수의 가치로 환산해서 연봉 책정의 기준으로 삼는다. 데이터 마이닝이 관심을 끄는 이유는 방대한 양의 데이터 속에 감춰진 정보나 지식을 잘 도출해 내 널리 활용할 수 있기 때문이다. 이렇게 얻은 지식은 위험 관리, 비즈니스 관리, 생산 관리, ..
[ML] Random forest regression Ensemble learning 참조 Ensemble method: 여러개의 머신 러닝 알고리즘으로부터 예측을 결합하는 기술 Types of Ensemble Learning (model combining method) Bosststrap Aggregation (Bagging) Majority Voting / Bagging / Random forest Majority Voting(다수결) 가장 단순한 모델 결합 방법으로 전혀 다른 모형도 결합할 수 있다. 다수결 방법은 Hard Voting과 Soft Voting 두 가지로 나뉘어진다. Hard voting: 단순 투표, 개별 모형의 결과 기준 Soft voting: 가중치 투표, 개별 모형의 조건부 확률의 합 기준 Scikit-Learn의 ensemble..
[ML] 머신러닝(기계학습) 분류
[ML] Logistic regression, Binary Cross-Entropy Loss, binary classifcation binary classification ( 0 or 1 ) -> logistic regression multi level classification 분류(Classification)와 로지스틱 회귀(Logistic Regression)의 Hypothesis Classification분류는 이항분류(Binary Classification)와 다항분류(Multinomial Classification)로 ... blog.naver.com 분류는 이항분류(Binary Classification)와 다항분류(Multinomial Classification)로 구분됩니다. ​ 이항분류는 두가지 분류를 하는 방법입니다. - 메일이 스펨인가 아닌가 - 주식이 오를것인가 내릴것인가 등등.. 보통 0과 1로 구분을 하며 ..
[ML] Regression 종류 1. Linear Regression 2. Logisitic Regression 3. Polynomial Regression 4. Stepwise Regression 5. Ridge Regression 6. Lasso Regression 7. ElasticNet Regression
[ML] dropout 오버피팅 다시 살펴보기 샘플들 보다 더 많은 특성(feature)들이 주어지면, 선형 모델은 오버핏(overfit) 될 수 있습니다. 반면에 특성(feature) 수 보다 샘플이 더 많은 경우에는 선형 모델은 일반적으로 오버핏(overfit) 되지 않습니다. 아쉽게도, 일반화를 잘하기 위해서는 그에 따른 비용이 들어갑니다. 매 특성(feature)에 대해서, 선형 모델은 양수 또는 음수의 가중치를 할당 해야합니다. 선형 모델은 특성(feature)들 사이의 미묘한 상호작용을 설명하지 못 합니다. 좀 더 공식적인 용어로 이야기하면, 편향-분산 트레이드오프(bias-variance tradeoff)로 논의되는 현상을 볼 것입니다. 선형 모델은 높은 편향(bias) (표현할 수 있는 함수의 개수가 적습니다)를..
Cross entropy의 이해, 사용 방법(Categorical, Binary, Focal loss) 이 글에서는 여러 가지 클래스를 분류하는 Classification 문제에서, Cross entropy를 사용하는 방법와 원리를 알아봅니다. 1. Tasks 우선, 두가지 문제를 봅시다. 1-1) Multi-Class Classfication 각 샘플(이미지)은 클래스 C 중 하나로 분류될 수 있습니다. 해는 0번, 즉 [1 0 0] (원핫인코딩), 달은 1번, [0 1 0], 구름은 2번, [0 0 1] 으로 분류될 수 있다는 말입니다. CNN은 s(scores) 벡터를 출력하고, one hot 벡터인 타겟(ground truth) 벡터 t와 매칭이 되어 loss값을 계산할 것입니다. 즉, Multi-Class Classification은 여러 샘플(이미지)에서 C개의 클래스 중 하나의 클래스로 분류하..
ImageNet Alexnet Resnet VGG Lenet GoogLenet YOLO
[CNN] Batch Normalization [Part Ⅵ. CNN 핵심 요소 기술] 1. Batch Normalization [1] - 라온피플 머신러닝 아카데미 - Part I. Machine Learning Part V. Best CNN Architecture Part VII. Semantic ... blog.naver.com Batch Normalization은 기본적으로 Gradient Vanishing / Gradient Exploding 이 일어나지 않도록 하는 아이디어 중의 하나이다. 지금까지는 이 문제를 Activation 함수의 변화 (ReLU 등), Careful Initialization, small learning rate 등으로 해결하였지만, 이 논문에서는 이러한 간접적인 방법보다는 training 하는 과정 자체를 전체적..
[ML] 오차(error)와 잔차(residual)의 차이 만약 모집단에서 회귀식을 얻었다면, 그 회귀식을 통해 얻은 예측값과 실제 관측값의 차이가 오차이다. 반면 표본집단에서 회귀식을 얻었다면, 그 회귀식을 통해 얻은 예측값과 실제 관측값의 차이가 잔차이다. 둘의 차이는 모집단에서 얻은 것이냐 표본집단에서 얻은 것이냐 뿐이다. 사실상 우리는 대부분 표본집단에서 회귀식을 얻기 때문에, 잔차를 가지고 회귀식의 최적의 파라미터 값들을 추정한다. 즉, 잔차들의 제곱들을 더한 것(잔차제곱합)을 최소로 만들어주는 파라미터를 찾는 것이다. 이것이 바로 최소제곱법(least squares method)이다. 최소제곱법은 최소자승법과 동의어다. ▶ 최소자승법(least square method)이란? 이제 투영이라는 개념과 최소자승법과 어떻게 연관되어 있는지 알아볼 시간이다...
[ML] ResNet 2 ResNet의 저자들은 컨볼루션 층들과 fully-connected 층들로 20 층의 네트워크와 56층의 네트워크를 각각 만든 다음에 성능을 테스트해보았다. 위 그래프들을 보면 오히려 더 깊은 구조를 갖는 56층의 네트워크가 20층의 네트워크보다 더 나쁜 성능을 보임을 알 수 있다. 기존의 방식으로는 망을 무조건 깊게 한다고 능사가 아니라는 것을 확인한 것이다. 뭔가 새로운 방법이 있어야 망을 깊게 만드는 효과를 볼 수 있다는 것을 ResNet의 저자들은 깨달았다. Residual Block 그것이 바로 ResNet의 핵심인 Residual Block의 출현을 가능케 했다. 아래 그림에서 오른쪽이 Residual Block을 나타낸다. 기존의 망과 차이가 있다면 입력값을 출력값에 더해줄 수 있도록 지름길..
[ML] ResNet 1 Shortcut Connection 단순히 더하는 add입니다. 레이어간의 연결이 순서대로 연속적인 것만 있는 것이 아니라, 중간을 뛰어넘어 전달하는(더하는) shortcut이 추가된 것입니다. 연산은 매우 간단하고, 개념도 매우 간단하지만 이것이 그래디언트를 직접적으로 잘 전달하여 gradient vanishing/exploding 문제를 해결하는 큰 효과를 불러일으키게 됩니다. low-level vision과 computer graphics 분야에서 Partial Differential Equations(PDEs)를 풀기 위해 Multigrid 방법들이 많이 사용됩니다. 이것은 다양한 스케일(크기)에서의 하위문제로 시스템을 재정의하는 것입니다. 쉽게 설명하면, 코카콜라 캔을 학습한다고 하였을 때, 코..
Quantization Quantization - Neural Network Distiller Quantization Quantization refers to the process of reducing the number of bits that represent a number. In the context of deep learning, the predominant numerical format used for research and for deployment has so far been 32-bit floating point, or FP32. H nervanasystems.github.io 텐서플로우에서의 양자화 (Quantize) 시키는 방법 [이글은 https://www.tensorflow.org/performance/q..
[ML] Supervised/Unsupervised learning classification logistic - softmax(multi variable) - sigmoid(binary variable ) regression linear(binary, multi variable)
[ML] Activation function 활성(화)함수란 입력을 받아 활성, 비활성을 결정하는데 사용되는 함수이다. 문제의 결과가 직선을 따르는 경향이 있다면 선형함수를 주로 이용한다. 2개를 분류하는 문제일 때는 Vanishing Gradient Problem때문에 sigmoid는 잘 사용하지 않고 ReLU와 그 변형된 활성화함수를 주로 이용한다. 3개 이상을 분류할 때 주로 Softmax와 그 변형된 활성화함수를 주로 이용한다. sigmoid 함수(2개 이하의 class)의 일반화 -> softmax (3개 class 이상일 때) we can consider the softmax function as a generalization of the sigmoid function that allows us to classify more than t..
[ML] CNN(Convolutional Neural Network) deep learning -> cnn CNN 관련 내용 기계 학습(Machine Learning, 머신 러닝)은 즐겁다! Part 3 딥러닝(Deep Learning)과 컨볼루션 신경망(Convolutional Neural Network 또는 CNN) medium.com [CS231n] 강의노트 : CNN (Convolutional Neural Networks) 목표 taeu.github.io A Comprehensive Introduction to Different Types of Convolutions in Deep Learning Towards intuitive understanding of convolutions through visualizations towardsdatascience.com 일..
[ML] Backpropagation backpropagation did not work well for neural nets with many layers. 미분이 의미하는 바? 영향을 미치는 정도 w 값이 1만큼 올라가면 5배 영향을 미친다. 2 * 5 / 3 * 5 [Deep Learning이란 무엇인가?] Backpropagation, 역전파 알아보기 이번 포스팅에서는 저번 포스팅에 이어 에 대해서 알아보려고 한다. 앞서 설명했듯, 이 알고리즘으로 인해 에서의 학습이 가능하다는 것이 알려져, 암흑기에 있던 학계가 다시 관심을 받게 되었 evan-moon.github.io Machine learning 스터디 (18) Neural Network Introduction - README 들어가며 최근 Machine Learning 분야에서..
[ML] Machine Learning training 1. 머신러닝 training forward되는 모델 하지만 이것은 정제된 데이터만을 학습할 수 있다. 딥러닝은 이러한 과정을 데이터에 상관없이 할 수 있다.(cnn) forward는 wx+b 아래는 마지막 단계인 activation 단계이다. 1) linear regression 2) logistic classification(regression) 결과값이 0과 1일 경우 linear regression이 맞지 않는다. 예측(linear regression, logistic classification 사용)을 했으면 cost를 구하고 이를 minimize해줘야 한다. training 과정 forward(wx+b) ->activation(regression, classification) -> comput..
[ML] AI, Machine Learning, Deep Learning 머신 러닝이란? 인공지능의 하위 집한 개념인 머신러닝은 정확한 결정을 내리기 위해 제공된 데이터를 통하여 스스로 학습할 수 있습니다. 처리될 정보에 대해 더 많이 배울 수 있도록 많은 양의 데이터를 제공해야 합니다. 즉, 빅데이터를 통한 학습 방법으로 머신러닝을 이용할 수 있습니다. 머신 러닝은 기본적으로 알고리즘을 이용해 데이터를 분석하고, 분석을 통해 학습하며, 학습한 내용을 기반으로 판단이나 예측을 합니다. 따라서 궁극적으로는 의사 결정 기준에 대한 구체적인 지침을 소프트웨어에 직접 코딩해 넣는 것이 아닌, 대량의 데이터와 알고리즘을 통해 컴퓨터 그 자체를 ‘학습’시켜 작업 수행 방법을 익히는 것을 목표로 한답니다. 딥 러닝이란? 딥 러닝은 인공신경망에서 발전한 형태의 인공 지능으로, 뇌의 뉴런과 ..