Bài 8: Layers (Phần 2) - Keras cơ bản

Đăng bởi: Admin | Lượt xem: 118 | Chuyên mục: AI


3. Constraints  ( Ràng buộc)

Trong học máy, một ràng buộc sẽ được đặt trên tham số (trọng số) trong giai đoạn tối ưu hóa. Mô-đun ràng buộc cung cấp các hàm khác nhau để thiết lập ràng buộc trên lớp. Một số hàm ràng buộc như sau.
a. NonNeg
Ràng buộc trọng số là giá trị không âm.
from keras.models import Sequential 
from keras.layers import Activation, Dense 
from keras import initializers 

my_init = initializers.Identity(gain = 1.0) model.add(
   Dense(512, activation = 'relu', input_shape = (784,), 
   kernel_initializer = my_init)
)
Trong đó :
kernel_constraint đại diện ràng buộc được sử dụng trong lớp. 
b. UnitNorm
Ràng buộc trọng số là định mức đơn vị.
from keras.models import Sequential 
from keras.layers import Activation, Dense 
from keras import constraints 

my_constrain = constraints.UnitNorm(axis = 0) 
model = Sequential() 
model.add(Dense(512, activation = 'relu', input_shape = (784,), 
   kernel_constraint = my_constrain))
c. MaxNorm
Giới hạn trọng số ở định mức nhỏ hơn hoặc bằng giá trị đã cho.
from keras.models import Sequential 
from keras.layers import Activation, Dense 
from keras import constraints 

my_constrain = constraints.MaxNorm(max_value = 2, axis = 0) 
model = Sequential() 
model.add(Dense(512, activation = 'relu', input_shape = (784,), 
   kernel_constraint = my_constrain))
Trong đó :
  • max_value là giới hạn trên
  • axis là số chiều mà ràng buộc sẽ được áp dụng. ví dụ. trong shape (2,3,4) trục 0 biểu thị kích thước thứ nhất, 1 biểu thị kích thước thứ hai và 2 biểu thị kích thước thứ ba
d. MinMaxNorm
Ràng buộc trọng số là chuẩn giữa các giá trị tối thiểu và tối đa được chỉ định.
from keras.models import Sequential 
from keras.layers import Activation, Dense 
from keras import constraints 

my_constrain = constraints.MinMaxNorm(min_value = 0.0, max_value = 1.0, rate = 1.0, axis = 0) 
model = Sequential() 
model.add(Dense(512, activation = 'relu', input_shape = (784,), 
   kernel_constraint = my_constrain))
Trong đó, rate là tốc độ áp dụng giới hạn trọng số.

4. Regularizers

Trong học máy, regularizers được sử dụng trong giai đoạn tối ưu hóa. Nó áp dụng một số hình phạt trên tham số layer trong quá trình tối ưu hóa. Model regularization Keras cung cấp các hàm sau để thiết lập các hình phạt trên layer.Regularization chỉ áp dụng trên cơ sở từng layer.
a. L1 Regularizer
Được cung cấp L1 dựa trên regularization :
from keras.models import Sequential 
from keras.layers import Activation, Dense 
from keras import regularizers 

my_regularizer = regularizers.l1(0.) 
model = Sequential() 
model.add(Dense(512, activation = 'relu', input_shape = (784,), 
   kernel_regularizer = my_regularizer))
b. L2 Regularizer
from keras.models import Sequential 
from keras.layers import Activation, Dense 
from keras import regularizers 

my_regularizer = regularizers.l2(0.) 
model = Sequential() 
model.add(Dense(512, activation = 'relu', input_shape = (784,), 
   kernel_regularizer = my_regularizer))
c. L1 và L2 Regularizer
from keras.models import Sequential 
from keras.layers import Activation, Dense 
from keras import regularizers 

my_regularizer = regularizers.l2(0.) 
model = Sequential() 
model.add(Dense(512, activation = 'relu', input_shape = (784,),
   kernel_regularizer = my_regularizer))

5. Activations

Trong học máy, hàm activation là một hàm đặc biệt được sử dụng để tìm xem một nơron cụ thể có được kích hoạt hay không. Về cơ bản, hàm activation thực hiện một sự biến đổi phi tuyến tính của dữ liệu đầu vào và do đó cho phép các nơron tốt hơn. Đầu ra của một nơron phụ thuộc vào hàm activation.
Khi bạn nhớ lại khái niệm nhận thức đơn lẻ, đầu ra của một tế bào cảm thụ (neuron) chỉ đơn giản là kết quả của hàm activation, hàm này chấp nhận tổng của tất cả đầu vào nhân với trọng số tương ứng của nó cộng với độ lệch tổng thể, nếu có.
result = Activation(SUMOF(input * weight) + bias)
Vì thế, hàm activation đóng một vai trò quan trọng trong việc học thành công mô hình. Keras cung cấp rất nhiều hàm trong mô-đun activation 
a. linear
Áp dụng hàm tuyến tính
from keras.models import Sequential 
from keras.layers import Activation, Dense 

model = Sequential() 
model.add(Dense(512, activation = 'linear', input_shape = (784,)))
Trong đó, activation đề cập đến hàm kích hoạt của lớp. Nó có thể được chỉ định đơn giản bằng tên của hàm và lớp sẽ sử dụng các trình kích hoạt tương ứng.
b. elu
from keras.models import Sequential 
from keras.layers import Activation, Dense 

model = Sequential() 
model.add(Dense(512, activation = 'elu', input_shape = (784,)))
c. selu
from keras.models import Sequential 
from keras.layers import Activation, Dense 

model = Sequential() 
model.add(Dense(512, activation = 'selu', input_shape = (784,)))
d. relu
from keras.models import Sequential 
from keras.layers import Activation, Dense 

model = Sequential() 
model.add(Dense(512, activation = 'relu', input_shape = (784,)))
e. softmax
from keras.models import Sequential 
from keras.layers import Activation, Dense 

model = Sequential() 
model.add(Dense(512, activation = 'softmax', input_shape = (784,)))
f. softplus
from keras.models import Sequential 
from keras.layers import Activation, Dense 

model = Sequential() 
model.add(Dense(512, activation = 'softplus', input_shape = (784,)))
g. softsign
from keras.models import Sequential 
from keras.layers import Activation, Dense 

model = Sequential() 
model.add(Dense(512, activation = 'softsign', input_shape = (784,)))
h. tanh
from keras.models import Sequential 
from keras.layers import Activation, Dense 
model = Sequential() 
model.add(Dense(512, activation = 'tanh', input_shape = (784,)))
i. sigmoid
from keras.models import Sequential 
from keras.layers import Activation, Dense 

model = Sequential() 
model.add(Dense(512, activation = 'sigmoid', input_shape = (784,)))
k. hard_sigmoid
from keras.models import Sequential 
from keras.layers import Activation, Dense 

model = Sequential() 
model.add(Dense(512, activation = 'hard_sigmoid', input_shape = (784,)))
l. exponential
from keras.models import Sequential 
from keras.layers import Activation, Dense 

model = Sequential() 
model.add(Dense(512, activation = 'exponential', input_shape = (784,)))
Bài tiếp theo: Tuỳ chỉnh Layer >>
vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!