1. What is Deep Learning
딥러닝 분야는 자연어 처리(Natural Language translation), 이미지 인식(Image recognition), 자율 주행(Automative drive) 등 에서 인간 레벨의 수준과 동등해지거나 추월하고 있다.
딥러닝은 머신러닝의 기법 중 하나로, 여러 층의 계산으로 구성되어 있는 모델이다. 깊은 층의 계산은 딥러닝 모델이 복잡하고, 비선형적이며, 계층 패턴이 존재하는 문제를 해결하는데 도움을 준다.
Neural Network는 Deep Learning을 정의하는 모델이 되는데, 이 Neural Network는 neuron으로 구성되어 있다. 각각의 neuron들은 독립적으로 간단한 계산을 수행하게 된다. Neural Network의 힘은 이 neuron들이 복잡하게 연결되어 형성함으로서 진가를 발휘한다.
2. The Linear Unit
입력값은 x이고 이 입력값은 가중치(weight)가 w인 뉴런과 연결되어 있다. 이 입력값이 들어올 때마다 연결되는 가중치와 곱해지게 된다. 그리하여 입력값 x는 뉴런에 𝑤×𝑥 형태로 도달하게 된다. Neural Network는 이 가중치(weight)를 변경하면서 학습하는 알고리즘 이다.
b는 특수한 형태의 가중치(weight)로 편향(bias)라고 불린다. 편향(bias)는 어떤 입력값과도 상호작용을 하지 않는 대신 bias unit인 1과 결합하여 뉴런에 b로 전달된다. 이 편향(bias)는 뉴런이 입력값에 관계없이 출력값을 변환하게 해준다.
y는 뉴런의 출력값이다. 뉴런의 출력값을 얻기 위해 직전에 계산했던 입력값과 편향에 가중치를 곱한 값들을 더한다. 이 활성화된 뉴런의 값은 $y = wx + b$ 이다.
3. The Linear Unit as a Model
하나의 뉴런은 대게 다층 네트워크 속에서 동작을 하게 되지만, 선형 모델로서 단독으로 활동을 할 수도 있다.
4. Multiple Inputs
뉴런의 입력값이 한개 이상인 경우 한 개 일때와 마찬가지로 각각의 가중치를 곱한 값을 더해 출력층으로 보내주면 된다.
출력층으로 보내지는 값은 다음과 같으며 $y = w_0 x_0 + w_1 x_1 + w_2 x_2 + b$. 두 개의 입력이 존재할 때는 평면을, 두 개 이상의 입력이 존재할 때는 초평면(Hyperplane)을 생성한다.
5. Linear Units in Keras
Keras 라이브러리에서 Neural Network를 생성하는 방법은 Keras.Sequential 모듈을 이용하면 된다. Keras.Sequential을 통해 여러 층의 Neural Network를 생성 가능하며, 하나의 뉴런을 Dense()를 통해 생성 가능하다.
from tensorflow import keras
from tensorflow.keras import layers
# Create a nework with 1 linear layers
model = keras.Sequential([layers.Dense(units = 1, input_shape = [3])])
첫 번째 argument인 units는 출력층의 개수를 지정하고, input_shape를 통해 입력층의 개수를 지정할 수 있다. Pandas Library의 다수의 column을 지정할 때와 마찬가지로 []안에 개수를 넣는다.
6. Exercise : A Single Neuron
Step 1 : Input shape
# YOUR CODE HERE
input_shape = [11]
Step 2 : Define a linear model
from tensorflow import keras
from tensorflow.keras import layers
# YOUR CODE HERE
model = keras.Sequential([layers.Dense(units = 1, input_shape = [11])])
Step 3 : Loot at the weights
# YOUR CODE HERE
w, b = model.weights
Source of the course : Kaggle Course _ A Single Neuron
'Course > [Kaggle] Data Science' 카테고리의 다른 글
[DL] Stochastic Gradient Descent (0) | 2022.03.01 |
---|---|
[DL] Deep Neural Networks (0) | 2022.02.28 |
[SQL] Writing Efficient Queries (0) | 2022.02.24 |
[SQL] Nested and Repeated Data (0) | 2022.02.24 |
[SQL] Analytic Functions (0) | 2022.02.24 |