Please enable JavaScript.
Coggle requires JavaScript to display documents.
Artificial Neurol Network, Tổng quan về Deep Learning :: - Coggle Diagram
Artificial Neurol Network
Định nghĩa
Mạng nơ-ron nhân tạo là một mô hình tính toán được lấy cảm hứng từ cấu trúc và chức năng của não người.
Ứng dụng
Nhận diện khuôn mặt
Xử lí ngôn ngữ tự nhiên
Dự đoán tài chính
Cấu trúc
Hiden layer
Học các đặc trưng và biểu diễn trừu tượng của dữ liệu
Output layer
Cung cấp kết quả cuối cùng sau khi xử lý
Input layer
Nhận dữ liệu thô từ thế giới thực
Optimization
Gradient Descent with Momentum
x=x-γ*v-ηL'(x)
"Quán tính" để tăng tốc quá trình hội tụ
Để tăng tốc quá trình hội tụ, đặc biệt trong các bề mặt hàm mất mát có dạng thung lũng hẹp.
Gradient descent
x=x-ηL'(x)
Cập nhật tham số theo hướng ngược lại của gradient tại vị trí hiện tại, nhằm giảm giá trị của hàm mất mát.
Hiệu quả khi bề mặt hàm mất mát đơn giản, không có nhiều local minima.
Learning Rate
Learning rate quá nhỏ → Hội tụ chậm.
Learning rate quá lớn → Dễ vượt qua điểm cực tiểu, gây dao động
Loss Function
Squared L2 norm
Đánh giá độ chênh lệch giữa giá trị dự đoán và giá trị thực.
Angle between 2 vectors
Đo sự tương quan định hướng giữa hai vector. Giá trị nhỏ hơn nghĩa là hai vector gần đồng hướng.
Cross Entropy Loss
Đo lường sự khác biệt giữa phân phối xác suất dự đoán p và phân phối thực tế q
Overfiting & Underfiting
Overfiting
High variance
Mô hình học quá chi tiết từ dữ liệu huấn luyện
Sai số trên dữ liệu huấn luyện thấp, nhưng sai số trên dữ liệu kiểm tra cao.
Giảm độ phức tạp của mô hình,Sử dụng early stopping
Underfiting
High bias
Mô hình không đủ phức tạp để học được các mẫu
Sai số trên dữ liệu huấn luyện và dữ liệu kiểm tra đều cao
Tăng độ phức tạp của mô hình,Huấn luyện lâu hơn
Activation Function
Sigmoid
Hàm sigmoid đưa đầu ra về giới hạn giữa 0 và 1.
σ(x)=1/(1 e^(-x))
ReLU
Khi đầu vào nằm trong vùng nhỏ hơn 0, giá trị hàm luôn là 0 và độ dốc là 0
f(x)=max(0,x)
Tanh
Tanh trung tâm tại 0, giúp dữ liệu cân bằng tốt hơn Sigmoid.
tanh(x)=20σ(x)-1
Error back propagation
Forward
S=Wx+B
B: bias
x: input vector
W: weight
Backward
Batch gradient descent
Update: all training dataset
Mini-Batch gradient descent
Update: subset of training set
Stochastic gradient descent
Update: each training example
Compare
Loss Function
Adjust weight
Data augmentation
Reflection
Rotation
Extracting patches
Altering intensities of RGB channels
Drop out
Dropout rate (1-p):Tỷ lệ nơ-ron bị loại bỏ
Tại mỗi epoch, một tập hợp nơ-ron khác nhau được tạm thời loại bỏ.
Giảm overfitting trong các mạng lớn với nhiều tham số.
Data
Validation Data
không được sử dụng để huấn luyện mô hình
điều chỉnh siêu tham số và đánh giá hiệu suất learning rate, số lớp ẩn, số nơ-ron, tỷ lệ dropout
Test Data
sử dụng sau khi mô hình đã hoàn tất huấn luyện
Đánh giá mô hình
Training Data
Sử dụng để huấn luyện mô hình.
tính toán và tối ưu các tham số
Tổng quan về Deep Learning ::
Mạng nơ ron tích chập CNN
Lớp Pooling
Là một lớp ở giữa mạng CNN, dùng để giảm kích thước bức ảnh -> giảm thông số cho các lớp tích chập kế tiếp -> tránh overfitting
Phân loại
Average Pooling
Đặt kernel vào một vùng ảnh, tỉnh giá trị trung bình các giá trị trong vùng ảnh đó
Max Pooling
Đặt kernel vào một vùng ảnh, lấy giá trị lớn nhất trong vùng ảnh đó
Lớp Fully-Connected
Tổng hợp đặc trưng đã trích xuất và đưa ra dự đoán cuối.
Lớp tích chập
Các tham số như bias, giá trị tại các vị trí trong kemel được cập nhật theo lan truyền ngược sai số
Kernel
Tính toán: lần lượt trượt kernel này đi hết bức ảnh và tính các tích võ hướng
Một vị trí trong activation map sẽ
được tính bằng cách lấy tổng giá trị khi đặt 3 layer vào 3 kênh màu của ảnh -> trừ bias -> qua hàm kích hoat
Là một cửa số trượt như các filter
Activation map
Nếu sau lớp tích chập là các lớp fully connected thì các activation mạp được biến đổi thành dạng one-hot vector
-
Là kết quả tính toán khi trượt 1 kernel đi hết các bức ảnh có K kernel thì có K activation map
Giải quyết các bài toán
Thị giác máy tính: Nhận dạng đối tượng, nhận dạng hành động,
Cấu trúc thường gặp của một mạng CNN hoàn chỉnh
Các lớp tích chập xen kẽ các lớp pooling và các lớp cuối cùng của mạng là fully-connected
Kích thước 3D của một lớp trong mạng CNN
Các lớp trong mạng CNN được biểu diễn 3D dưới dạng các khối: trong đó, chiều cao (height) và chiều rộng (width) liên quan đến kích thước của input (có thể là tấm ảnh hoặc activation map của lớp phía trước), chiều sâu (depth) liên quan đến số lượng kernel/layer của lớp phía trước
Một số kiến trúc mạng CNN phố biến
AlexNet: Ứng dụng sử dụng mạng CNN phổ biến đầu tiên trong thị giác máy
Các lớp tích chập liên tiếp nhau
Sau khi tính toán cho lớp tích chập thứ nhất ta thu được K activation map ứng với K kernel
Các kernel ở lớp thứ 2 phải có số layer bằng số activation map thu được ở lớp thứ nhất
Lúc này, một vị trí trong activation map ở lớp thứ 2 sẽ bằng tổng loạt các tích vô hướng.
Recurrent neural network
Giới thiệu
Dùng RNN khi dữ liệu có thứ tự, thời gian hoặc ngữ cảnh giữa các phần tử.
Có vòng lặp cho phép thông tin được lưu giữ và tái sử dụng ở mỗi bước thời gian.
Có trí nhớ ngắn hạn, sử dụng trạng thái trước đó để xử lý trạng thái hiện tại.
Ứng dụng
Tổng hợp giọng nói
Nhận diện chuỗi hành động trong video.
Sáng tác nhạc.
Ưu nhược điểm
Ưu điểm
Xử lý tốt dữ liệu chuỗi, có tính thời gian.
Lưu giữ thông tin ngữ cảnh từ dữ liệu trước đó.
Nhược điểm
Gặp vấn đề vanishing gradient → khó học khi chuỗi quá dài.
Long short term memory (LSTM) ra đời
Phân loại bài toán RNN
One to many: 1 input nhưng nhiều output
Many to one: có nhiều input nhưng chỉ có 1 output
One to one:1 input và 1 output
Many to many: có nhiều input và nhiều output
Loss Function
Loss function của cả mô hình bằng tổng loss của mỗi output
Thường sử dụng categorical cross entropy loss
Mô hình tổng quát
Mỗi thời điểm t, RNN nhận input xt và trạng thái ẩn h(t-1) từ bước trước.
Dựa vào hai thông tin này, nó tính ra trạng thái ẩn hiện tại (ht) và đầu ra (yt).
Tính trạng thái ẩn (hidden state)
ht = tanh(Whh
ht-1 + Wxh
xt + bh)
Tính đầu ra (output)
yt = softmax(Why * ht + by)