From 12fb20daa6267fd56c0457426474ba8146868301 Mon Sep 17 00:00:00 2001
From: Johwiyong <33315343+airplane2230@users.noreply.github.com>
Date: Tue, 29 Oct 2019 16:23:16 +0900
Subject: [PATCH 1/3] Update optimizers.md
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
원문 비교입니다.
---
sources/optimizers.md | 63 +++++++++++++++----------------------------
1 file changed, 22 insertions(+), 41 deletions(-)
diff --git a/sources/optimizers.md b/sources/optimizers.md
index a8835ad3..89e67bfa 100644
--- a/sources/optimizers.md
+++ b/sources/optimizers.md
@@ -46,11 +46,11 @@ sgd = optimizers.SGD(lr=0.01, clipvalue=0.5)
---
-[[source]](https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L157)
+[[source]](https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L164)
### SGD
```python
-keras.optimizers.SGD(lr=0.01, momentum=0.0, decay=0.0, nesterov=False)
+keras.optimizers.SGD(learning_rate=0.01, momentum=0.0, nesterov=False)
```
확률적 경사 하강법(Stochastic Gradient Descent, SGD) 옵티마이저.
@@ -59,34 +59,28 @@ keras.optimizers.SGD(lr=0.01, momentum=0.0, decay=0.0, nesterov=False)
__인자__
-- __lr__: 0보다 크거나 같은 float 값. 학습률.
+- __learning_rate__: 0보다 크거나 같은 float 값. 학습률.
- __momentum__: 0보다 크거나 같은 float 값.
SGD를 적절한 방향으로 가속화하며, 흔들림(진동)을 줄여주는 매개변수입니다.
-- __decay__: 0보다 크거나 같은 float 값. 업데이트마다 적용되는 학습률의 감소율입니다.
- __nesterov__: 불리언. 네스테로프 모멘텀의 적용 여부를 설정합니다.
----
-[[source]](https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L220)
+[[source]](https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L229)
### RMSprop
```python
-keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=None, decay=0.0)
+keras.optimizers.RMSprop(learning_rate=0.001, rho=0.9)
```
RMSProp 옵티마이저.
RMSProp을 사용할 때는 학습률을 제외한 모든 인자의 기본값을 사용하는 것이 권장됩니다.
-일반적으로 순환 신경망(Recurrent Neural Networks)의 옵티마이저로 많이 사용됩니다.
-
__인자__
-- __lr__: 0보다 크거나 같은 float 값. 학습률.
+- __learning_rate__: 0보다 크거나 같은 float 값. 학습률.
- __rho__: 0보다 크거나 같은 float 값.
-- __epsilon__: 0보다 크거나 같은 float형 fuzz factor.
- `None`인 경우 `K.epsilon()`이 사용됩니다.
-- __decay__: 0보다 크거나 같은 float 값. 업데이트마다 적용되는 학습률의 감소율입니다.
__참고__
@@ -94,11 +88,11 @@ __참고__
----
-[[source]](https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L288)
+[[source]](https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L303)
### Adagrad
```python
-keras.optimizers.Adagrad(lr=0.01, epsilon=None, decay=0.0)
+keras.optimizers.Adagrad(learning_rate=0.01)
```
Adagrad 옵티마이저.
@@ -111,10 +105,7 @@ Adagrad를 사용할 때는 모든 인자의 기본값을 사용하는 것이
__인자__
-- __lr__: 0보다 크거나 같은 float 값. 학습률.
-- __epsilon__: 0보다 크거나 같은 float 값.
- `None`인 경우 `K.epsilon()`이 사용됩니다.
-- __decay__: 0보다 크거나 같은 float 값. 업데이트마다 적용되는 학습률의 감소율입니다.
+- __learning_rate__: 0보다 크거나 같은 float 값. 학습률.
__참고__
@@ -123,11 +114,11 @@ __참고__
----
-[[source]](https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L353)
+[[source]](https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L376)
### Adadelta
```python
-keras.optimizers.Adadelta(lr=1.0, rho=0.95, epsilon=None, decay=0.0)
+keras.optimizers.Adadelta(learning_rate=1.0, rho=0.95)
```
Adadelta 옵티마이저.
@@ -142,13 +133,10 @@ Adadelta를 사용할 때는 모든 인자의 기본값을 사용하는 것이
__인자__
-- __lr__: 0보다 크거나 같은 float 값. 초기 학습률로, 기본값은 1입니다.
+- __learning_rate__: 0보다 크거나 같은 float 값. 초기 학습률로, 기본값은 1입니다.
기본값을 사용하는 것이 권장됩니다.
- __rho__: 0보다 크거나 같은 float 값.
학습률 감소에 쓰이는 인자로, 각 시점에 유지되는 그래디언트의 비율에 해당합니다.
-- __epsilon__: 0보다 크거나 같은 float형 fuzz factor.
- `None`인 경우 `K.epsilon()`이 사용됩니다.
-- __decay__: 0보다 크거나 같은 float 값. 초기 학습률 감소율입니다.
__참고__
@@ -157,11 +145,11 @@ __참고__
----
-[[source]](https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L436)
+[[source]](https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L467)
### Adam
```python
-keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.0, amsgrad=False)
+keras.optimizers.Adam(learning_rate=0.001, beta_1=0.9, beta_2=0.999, amsgrad=False)
```
Adam 옵티마이저.
@@ -170,12 +158,9 @@ Adam 옵티마이저.
__인자__
-- __lr__: 0보다 크거나 같은 float 값. 학습률.
+- __learning_rate__: 0보다 크거나 같은 float 값. 학습률.
- __beta_1__: 0보다 크고 1보다 작은 float 값. 일반적으로 1에 가깝게 설정됩니다.
- __beta_2__: 0보다 크고 1보다 작은 float 값. 일반적으로 1에 가깝게 설정됩니다.
-- __epsilon__: 0보다 크거나 같은 float형 fuzz factor.
- `None`인 경우 `K.epsilon()`이 사용됩니다.
-- __decay__: 0보다 크거나 같은 float 값. 업데이트마다 적용되는 학습률의 감소율입니다.
- __amsgrad__: 불리언. Adam의 변형인 AMSGrad의 적용 여부를 설정합니다.
AMSGrad는 "On the Convergence of Adam and Beyond" 논문에서 소개되었습니다.
@@ -188,7 +173,7 @@ __참조__
----
-[[source]](https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L527)
+[[source]](https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L567)
### Adamax
```python
@@ -202,12 +187,10 @@ Adam 논문의 섹션 7에 소개된 Adamax 옵티마이저.
__인자__
-- __lr__: 0보다 크거나 같은 float 값. 학습률.
+- __learning_rate__: 0보다 크거나 같은 float 값. 학습률.
- __beta_1__: 0보다 크고 1보다 작은 float 값. 일반적으로 1에 가깝게 설정됩니다.
-- __beta_2__: 0보다 크고 1보다 작은 float 값. 일반적으로 1에 가깝게 설정됩니다.
-- __epsilon__: 0보다 크거나 같은 float형 fuzz factor.
- `None`인 경우 `K.epsilon()`이 사용됩니다.
-- __decay__: 0보다 크거나 같은 float 값. 업데이트마다 적용되는 학습률의 감소율입니다.
+- __beta_2__: float, 0 < beta < 1. Generally close to 1.
+
__참고__
@@ -216,11 +199,11 @@ __참고__
----
-[[source]](https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L605)
+[[source]](https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L645)
### Nadam
```python
-keras.optimizers.Nadam(lr=0.002, beta_1=0.9, beta_2=0.999, epsilon=None, schedule_decay=0.004)
+keras.optimizers.Nadam(learning_rate=0.002, beta_1=0.9, beta_2=0.999)
```
네스테로프 Adam 옵티마이저.
@@ -233,11 +216,9 @@ Nadam을 사용할 때는 모든 인자의 기본값을 사용하는 것이 권
__인자__
-- __lr__: 0보다 크거나 같은 float 값. 학습률.
+- __learning_rate__: 0보다 크거나 같은 float 값. 학습률.
- __beta_1__: 0보다 크고 1보다 작은 float 값. 일반적으로 1에 가깝게 설정됩니다.
- __beta_2__: 0보다 크고 1보다 작은 float 값. 일반적으로 1에 가깝게 설정됩니다.
-- __epsilon__: 0보다 크거나 같은 float형 fuzz factor.
- `None`인 경우 `K.epsilon()`이 사용됩니다.
__참고__
From 91a63ce0c4ac5beffb6aa594ca93d73dbc5ed2c8 Mon Sep 17 00:00:00 2001
From: Johwiyong <33315343+airplane2230@users.noreply.github.com>
Date: Tue, 29 Oct 2019 17:35:35 +0900
Subject: [PATCH 2/3] Update optimizers.md
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
내용 변경하였습니다.
---
sources/optimizers.md | 110 +++++++++++++++++++++---------------------
1 file changed, 54 insertions(+), 56 deletions(-)
diff --git a/sources/optimizers.md b/sources/optimizers.md
index 89e67bfa..355fe941 100644
--- a/sources/optimizers.md
+++ b/sources/optimizers.md
@@ -1,6 +1,6 @@
-## 옵티마이저의 사용법
+## 최적화 함수의 사용법Usage of optimizers
-옵티마이저는 Keras 모델을 컴파일하기 위해 필요한 두 개의 매개변수(parameter) 중 하나입니다.
+최적화 함수opti는 손실 함수loss와 더불어 케라스 모델을 컴파일compile하기 위한 인자입니다.
```python
from keras import optimizers
@@ -9,38 +9,37 @@ model = Sequential()
model.add(Dense(64, kernel_initializer='uniform', input_shape=(10,)))
model.add(Activation('softmax'))
+# 최적화 함수의 객체를 만듭니다.
sgd = optimizers.SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='mean_squared_error', optimizer=sgd)
```
-옵티마이저는 위의 예제와 같이 객체를 만들어 `model.compile()`의 인자로 전달하거나, 아래와 같이 이름으로 사용할 수도 있습니다. 후자의 경우에는 해당 옵티마이저의 기본 설정이 사용됩니다.
+최적화 함수는 위의 예시와 같이 객체를 만들어 `model.compile()`의 인자로 전달하거나, 아래와 같이 문자열 형태로 전달할 수 있습니다.
+문자열을 전달할 경우, 해당 최적화 함수의 모든 인자는 기본값으로 사용됩니다.
```python
-# 옵티마이저의 이름을 사용하는 경우에는
-# 기본 설정이 사용됩니다.
+# 최적화 함수를 문자열 형태로 전달하는 경우는
+# 기본값이 사용됩니다.
model.compile(loss='mean_squared_error', optimizer='sgd')
```
---
-## 모든 Keras 옵티마이저에 공통적인 매개변수
+## 모든 케라스 최적화 함수에 사용되는 공통 인자
-모든 옵티마이저는 `clipnorm`과 `clipvalue` 매개변수를 통해 그래디언트 클리핑(gradient clipping)을 조절할 수 있습니다.
+모든 최적화 함수는 `clipnorm`과 `clipvalue` 인자를 통해 그래디언트 클리핑(gradient clipping)을 조절할 수 있습니다.
```python
from keras import optimizers
-# All parameter gradients will be clipped to
-# a maximum norm of 1.
+# 모든 그래디언트의 노름의 크기는 최대 1입니다.
sgd = optimizers.SGD(lr=0.01, clipnorm=1.)
```
```python
from keras import optimizers
-# All parameter gradients will be clipped to
-# a maximum value of 0.5 and
-# a minimum value of -0.5.
+# 모든 그래디언트의 노름의 크기는 최소 -0.5, 최대 0.5로 제한됩니다.
sgd = optimizers.SGD(lr=0.01, clipvalue=0.5)
```
@@ -53,16 +52,16 @@ sgd = optimizers.SGD(lr=0.01, clipvalue=0.5)
keras.optimizers.SGD(learning_rate=0.01, momentum=0.0, nesterov=False)
```
-확률적 경사 하강법(Stochastic Gradient Descent, SGD) 옵티마이저.
+확률적 경사 하강법Stochastic Gradient Descent 최적화 함수
-모멘텀과 네스테로프 모멘텀(Nesterov momentum), 그리고 학습률 감소 기법(learning rate decay)을 지원합니다.
+모멘텀과 네스테로프 모멘텀nesterov momentum 인자를 지정할 수 있습니다.
__인자__
-- __learning_rate__: 0보다 크거나 같은 float 값. 학습률.
-- __momentum__: 0보다 크거나 같은 float 값.
- SGD를 적절한 방향으로 가속화하며, 흔들림(진동)을 줄여주는 매개변수입니다.
-- __nesterov__: 불리언. 네스테로프 모멘텀의 적용 여부를 설정합니다.
+- __learning_rate__: `float`>=0. 학습률.
+- __momentum__: `float`>=0. 적절한 방향으로 SGD의 학습 속도를 가속화하며,
+흔들림(진동)oscillations을 줄여줍니다.
+- __nesterov__: `boolean`. 네스테로프 모멘텀의 적용 여부를 설정합니다.
----
@@ -73,14 +72,14 @@ __인자__
keras.optimizers.RMSprop(learning_rate=0.001, rho=0.9)
```
-RMSProp 옵티마이저.
+RMSProp 최적화 함수.
-RMSProp을 사용할 때는 학습률을 제외한 모든 인자의 기본값을 사용하는 것이 권장됩니다.
+이 최적화 함수를 사용할 때, 학습률을 제외한 모든 인자에서 기본값 사용을 권장합니다.
__인자__
-- __learning_rate__: 0보다 크거나 같은 float 값. 학습률.
-- __rho__: 0보다 크거나 같은 float 값.
+- __learning_rate__: `float`>=0. 학습률.
+- __rho__: `float`>=0.
__참고__
@@ -95,17 +94,17 @@ __참고__
keras.optimizers.Adagrad(learning_rate=0.01)
```
-Adagrad 옵티마이저.
+Adagrad 최적화 함수.
-Adagrad는 모델 파라미터별 학습률을 사용하는 옵티마이저로,
-파라미터의 값이 업데이트되는 빈도에 의해 학습률이 결정됩니다.
-파라미터가 더 자주 업데이트될수록, 더 작은 학습률이 사용됩니다.
+Adagrad는 매개변수마다 다르게 적용되는 학습률이 사용되며,
+매개변수의 값이 갱신되는 빈도에 따라 학습률이 결정됩니다.
+매개변수가 더 자주 갱신될수록, 더 작은 학습률이 사용됩니다.
-Adagrad를 사용할 때는 모든 인자의 기본값을 사용하는 것이 권장됩니다.
+이 최적화 함수를 사용하는 경우, 기본값 사용을 권장합니다.
__인자__
-- __learning_rate__: 0보다 크거나 같은 float 값. 학습률.
+- __learning_rate__: `float`>=0. 학습률.
__참고__
@@ -121,22 +120,21 @@ __참고__
keras.optimizers.Adadelta(learning_rate=1.0, rho=0.95)
```
-Adadelta 옵티마이저.
+Adadelta 최적화 함수.
-Adadelta는 Adagrad를 확장한 보다 견고한 옵티마이저로
-과거의 모든 그래디언트를 축적하는 대신, 그래디언트 업데이트의 이동창(moving window)에 기반하여 학습률을 조절합니다.
-이 방법을 사용하면 Adadelta는 많은 업데이트가 이뤄진 후 일지라도 학습을 계속할 수 있습니다.
+Adadelta는 Adagrad를 확장하여 더욱 견고한 최적화함수입니다.
+이전의 모든 그래디언트를 축적하는 대신, 그래디언트 갱신의 이동창moving window에 기반하여 학습률을 조절합니다.
+이 방법을 사용함으로써 많은 갱신이 이뤄지더라도 학습을 계속할 수 있습니다.
Adagrad와 비교해 볼 때, Adadelta의 기존 버전에서는 초기 학습률을 설정할 필요가 없었습니다.
-하지만 현재의 버전에서는 다른 Keras 옵티마이저들처럼 초기 학습률과 감소율을 설정할 수 있습니다.
+하지만 현재 버전에서는 다른 케라스 최적화함수와 같이 초기 학습률을 설정할 수 있습니다.
-Adadelta를 사용할 때는 모든 인자의 기본값을 사용하는 것이 권장됩니다.
+이 최적화 함수를 사용하는 경우, 기본값 사용을 권장합니다.
__인자__
-- __learning_rate__: 0보다 크거나 같은 float 값. 초기 학습률로, 기본값은 1입니다.
- 기본값을 사용하는 것이 권장됩니다.
-- __rho__: 0보다 크거나 같은 float 값.
- 학습률 감소에 쓰이는 인자로, 각 시점에 유지되는 그래디언트의 비율에 해당합니다.
+- __learning_rate__: `float`>=0. 학습률. 초기 학습률은 1이며, 기본값 사용을 권장합니다.
+- __rho__: `float`>=0. 학습률 감소에 쓰이는 값으로서,
+해당 시점에 유지되는 그래디언트 비율을 나타냅니다.
__참고__
@@ -152,16 +150,16 @@ __참고__
keras.optimizers.Adam(learning_rate=0.001, beta_1=0.9, beta_2=0.999, amsgrad=False)
```
-Adam 옵티마이저.
+Adam 최적화 함수.
-매개변수들의 기본값은 논문에서 언급된 내용을 따릅니다.
+제공되는 모든 인자의 기본값은 논문에서 언급된 내용을 따릅니다.
__인자__
-- __learning_rate__: 0보다 크거나 같은 float 값. 학습률.
-- __beta_1__: 0보다 크고 1보다 작은 float 값. 일반적으로 1에 가깝게 설정됩니다.
-- __beta_2__: 0보다 크고 1보다 작은 float 값. 일반적으로 1에 가깝게 설정됩니다.
-- __amsgrad__: 불리언. Adam의 변형인 AMSGrad의 적용 여부를 설정합니다.
+- __learning_rate__: `float`>=0. 학습률.
+- __beta_1__: `float`, 0 < beta_1 < 1. 일반적으로 1에 가까운 수를 지정합니다.
+- __beta_2__: `float`, 0 < beta_2 < 1. 일반적으로 1에 가까운 수를 지정합니다.
+- __amsgrad__: `boolean`. Adam의 변형된 형태인 AMSGrad의 적용 여부를 설정합니다.
AMSGrad는 "On the Convergence of Adam and Beyond" 논문에서 소개되었습니다.
__참조__
@@ -180,16 +178,16 @@ __참조__
keras.optimizers.Adamax(lr=0.002, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.0)
```
-Adam 논문의 섹션 7에 소개된 Adamax 옵티마이저.
+Adam 논문의 섹션 7에 소개된 Adamax 최적화 함수.
-무한 노름(infinity norm)에 기반한 Adam의 변형입니다.
-매개변수들의 기본값은 논문에서 언급된 내용을 따릅니다.
+무한 노름(infinity norm)에 기반한 Adam의 변형된 형태입니다.
+제공되는 모든 인자의 기본값은 논문에서 언급된 내용을 따릅니다.
__인자__
-- __learning_rate__: 0보다 크거나 같은 float 값. 학습률.
-- __beta_1__: 0보다 크고 1보다 작은 float 값. 일반적으로 1에 가깝게 설정됩니다.
-- __beta_2__: float, 0 < beta < 1. Generally close to 1.
+- __learning_rate__: `float`>=0. 학습률.
+- __beta_1__: `float`, 0 < beta_1 < 1. 일반적으로 1에 가까운 수를 지정합니다.
+- __beta_2__: `float`, 0 < beta_2 < 1. 일반적으로 1에 가까운 수를 지정합니다.
__참고__
@@ -206,19 +204,19 @@ __참고__
keras.optimizers.Nadam(learning_rate=0.002, beta_1=0.9, beta_2=0.999)
```
-네스테로프 Adam 옵티마이저.
+네스테로프 Adam 최적화 함수.
Adam이 본질적으로는 모멘텀이 적용된 RMSprop인 것처럼,
Nadam은 네스테로프 모멘텀이 적용된 RMSprop입니다.
-매개변수들의 기본값은 논문에서 언급된 내용을 따릅니다.
-Nadam을 사용할 때는 모든 인자의 기본값을 사용하는 것이 권장됩니다.
+제공되는 모든 인자의 기본값은 논문에서 언급된 내용을 따릅니다.
+이 최적화 함수를 사용하는 경우, 기본값 사용을 권장합니다.
__인자__
-- __learning_rate__: 0보다 크거나 같은 float 값. 학습률.
-- __beta_1__: 0보다 크고 1보다 작은 float 값. 일반적으로 1에 가깝게 설정됩니다.
-- __beta_2__: 0보다 크고 1보다 작은 float 값. 일반적으로 1에 가깝게 설정됩니다.
+- __learning_rate__: `float`>=0. 학습률.
+- __beta_1__: `float`, 0 < beta_1 < 1. 일반적으로 1에 가까운 수를 지정합니다.
+- __beta_2__: `float`, 0 < beta_2 < 1. 일반적으로 1에 가까운 수를 지정합니다.
__참고__
From 4c686a2d0be52b76b0c7be2b30ddf7b8052240ef Mon Sep 17 00:00:00 2001
From: Johwiyong <33315343+airplane2230@users.noreply.github.com>
Date: Tue, 29 Oct 2019 17:36:32 +0900
Subject: [PATCH 3/3] Update optimizers.md
opti -> optimizer
---
sources/optimizers.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/optimizers.md b/sources/optimizers.md
index 355fe941..d446d77e 100644
--- a/sources/optimizers.md
+++ b/sources/optimizers.md
@@ -1,6 +1,6 @@
## 최적화 함수의 사용법Usage of optimizers
-최적화 함수opti는 손실 함수loss와 더불어 케라스 모델을 컴파일compile하기 위한 인자입니다.
+최적화 함수optimizer는 손실 함수loss와 더불어 케라스 모델을 컴파일compile하기 위한 인자입니다.
```python
from keras import optimizers