Hàm Leaky ReLU

Một phần của tài liệu Nhận diện hành động qua video (Trang 39)

5 Thực nghiệm

3.13 Hàm Leaky ReLU

Hàm Softmax: là một hàm biến không gian K chiều của các giá trị bất kỳ thành không gian

có thể đại diện như một phân phối xác suất K biến, đảm bảo giá trị ban đầu càng lớn sẽ có xác suất rơi vào khả năng K càng lớn và ngược lại. Hàm kích hoạt này thường được đặt ở tầng đầu ra để biểu diễn xác suất thuộc về mỗi class (lớp).

f(xi) = e

xi

∑nj=0exj (3.5)

3.2.4 Lan truyền ngược (Back propagation)

Trong các bài toán tối ưu, việc sử dụng đạo hàm là phương pháp chủ yếu để tìm các điểm cực trị. Việc giải phương trình đạo hàm bằng không đưa ra một tập nghiệm mà tại đó ta chọn ra được các điểm cực trị cần tìm một cách chính xác. Tuy nhiên với một số bài toán phức tạp, hay các bài toán bất khả vi thì việc giải phương trình đạo hàm bằng không là rất khó, thậm chí là không tồn tại nghiệm. Điều đó đặc biệt đúng trong ngữ cảnh máy học, việc tính chính xác điểm cực trị trong các mô hình học sâu gần như là bất khả thi. Một phương pháp thay thế để đơn giản hóa việc này, tuy nhiên vẫn giữ được độ chính xác tương đối để đáp ứng nhu cầu bài toán được gọi làGradient descent.

x f′(x) f(x) −∞ 1 +∞ 0 − + +∞ +∞ -2 f(x) =1 2(x−1)2−2 x∗

Hình 3.14: Khảo sát sự biến thiên của một đa thức bậc hai (nguồn [33]).

Để hiểu được ý tưởng củagradient descent, ta đi vào nghiên cứu ứng dụng của phương pháp

để tìm điểm cực trị của hàm một biến. Xét hàm số f(x) =1

2(x−1)2−2có độ thị như hình 3.14, mục tiêu là sử dụng gradient descent để đưa giá trị mà ta cho là nghiệm xấp xỉ xt về gần với nghiệm thực sựx∗. Ta khảo sát đạo hàm f′(t)tại điểmxt như sau:

• nếu f′(t)>0tứcxt lúc này đang ở bên phải củax∗, lúc này cần dời vị tríxt sang bên trái vị trí hiện tại.

• ngược lại nếu f′(t)<0tức lúc nàyxtđang ở bên trái củax∗, vàxt cần được dời về bên phải vị trí hiện tại.

đó, điều này tương đương với công thức sau:

x(t+1) =xt−ηf′(t) (3.6) Trong đó giá trịη thường được gọi làtốc độ học (learning rate). Dấu trừ biểu thị cho việc

dờixtngược chiều với giá trị đạo hàm. (tham khảo [33])

Trong học máy, Gradient descent ứng dụng cho việc cập nhật các tham số giữa các layer của mạng. Quá trình cập nhật tham số này được gọi là lan truyền ngược (back propagation).

3.2.5 Hàm mất mát (Loss function)

Để một mô hình học máy có thể cải thiện theo xu hướng mong muốn, cần có một chỉ dẫn để việc cập nhật các tham số theo hướng có tốt hơn. Việc chỉ dẫn này được cụ thể hóa bằng một hàm số gọi là hàm mất mát (loss function hoặc cost function). Thông thường khi hàm mất mát đạt giá trị càng thấp thì mô hình có khả năng dự đoán càng chính xác. Nói cách khác, việc xây dựng mô hình cũng giống như việc tối ưu một hàm số, quá trình tối ưu đó, trong học máy gọi là

learning. Ký hiệu của hàm mất mátJ(θ), khi đó tham số cần tìm là:

θ∗=argmin(J(θ))

θ

(3.7) Tùy vào từng bài toán sẽ có các hàm mất mát riêng.

Hàm mất mát cho bài toán hồi quy

• Hàm sai số toàn phương trung bình (Mean Square Error - MSE): Như cái tên của hàm cho thấy, hàm là giá trung bình của bình phương các sai số giữa các giá trị dự đoán và quan sát thực tế. Hàm được sử dụng rất phổ biến cho các bài toán hồi quy. Điểm cộng của MSE là đây làm hàm dễ tính đạo hàm. Do bình phương, các dự đoán khác xa với giá trị thực tế sẽ bị phạt rất nặng so với các dự đoán ít sai lệch hơn.

MSE= 1 n n ∑ i=1 (Yi−Yˆi)2

• Hàm sai số tuyệt đối trung bình (Mean Absolute Error - MAE): Hàm là giá trung bình của trị tuyệt đối các sai số giữa các giá trị dự đoán và quan sát thực tế. Điểm cộng của MAE là hàm không quá nhạy cảm với các ngoại lệ. Không giống như MSE, hàm cần những công cụ phức tạp hơn để tính đạo hàm. MAE= 1 n n ∑ i=1 |Yi−Yˆi|

• Hàm sai số thiên vị trung bình (Mean Bias Error - MBE): Hàm này không được dùng phổ biến trong học máy, nó giống với MAE, chỉ khác một điểm duy nhất là không lấy trị tuyệt đối sai số. Rõ ràng có thể thấy yếu điểm của hàm là lỗi này là sai số của hai lớp đối nghịch có thể triệt tiêu nhau. Tuy nhiên hàm vẫn có đánh giá mô hình đang thiên vị dự đoán cho lớp nào. MBE=1 n n ∑ i=1 (Yi−Yˆi)

Hàm mất mát cho bài toán phân loại

• Hàm Hinge: hàm được xây dựng sao cho các giá trị của các nhãn đúng phải lớn hơn giá trị của các nhãn sai 1 khoảngδ nào đó (thường là 1). Hàm thường dùng cho giải thuật tối ưu lề mà đặc biệt support vector machine (SVM).

Hinge= ∑

j6=yi

max(0,sj−syi+δ)

• Hàm Cross Entropy: đây là hàm được sử dụng phổ biến trong bài toán phân loại, và cũng là hàm chúng tôi sử dụng trong thực nghiệm. Dễ thấy khiy=0nửa đầu của hàm sẽ bị triệt tiêu, và khiy=1nửa sau của hàm sẽ bị triệt tiêu. Một khía cạnh quan trọng là hàm sẽ phạt rất nặng đến các dự đoán tự tin nhưng sai, bởi

CEL=−(yi×log(yˆi) + (1−yi)×log(1−yˆi))

3.2.6 Phép nhân tích chập ma trận (Convolution)

Nhân tích chập là phép toán quan trọng trong Xử lý ảnh số và thị giác máy tính, là công cụ chủ yếu để thực hiện các phép tính toán trên ảnh như đạo hàm ảnh, làm trơn ảnh hay trích xuất cạnh.

Trong toán học, tích chập là phép toán trên hai hàm f và g, tạo ra hàm thứ ba là hàm (f*g). Công thức phép tích chập trên miền liên tục một chiều như sau:

(f∗g)(t),

Z ∞

−∞f(τ)g(t−τ)dτ (3.8) Đối với trong Xử lý ảnh, phép tích chập được tính trên miền không gian hai chiều, rời rạc. Công thức tính tích chập trên ảnh f và bộ lọc k (kích thước mxn) tại điểm ảnh vị trí (x,y) với giả sử chỉ số trên bộ lọc được đánh số hàng từ -m/2 -> m/2 và chỉ số cột từ -n/2 -> n/2: (k∗f)(x,y), m/2 ∑ u=−m/2 n/2 ∑ v=−n/2 k(u,v)f(x−u,y−v) (3.9)

Một phép toán tương tự convolution nhưng không xoay bộ lọc như trên, gọi là correlation (hình 3.15), công thức như sau:

(k∗f)(x,y), m/2 ∑ u=−m/2 n/2 ∑ v=−n/2 k(u,v)f(x+u,y+v) (3.10) Hình 3.15: Phép correlation.

Do tính chất kết nối cục bộ (Local connectivity), thông tin của các điểm trong vùng ảnh hưởng được tổng hợp vào điểm neo (tâm của kernel), do đó ảnh hưởng đến kích thước ma trận đầu ra. Để kiểm soát kích thước đầu ra của phép tích chập, chúng ta có 4 siêu tham số:

• Kích thước bộ lọc: đây là kích thước của ma trận tích chập cũng như kích thước diện tích vùng ma trận đầu vào của phép tích chập. Để thông tin các vùng lân cận tổng hợp vào tâm, thông thường sẽ là ma trận vuông có kích thước nhỏ và lẻ như là3×3,5×5...

• Stride: Xác định độ dài bước trượt giữa các tâm của ma trận đầu vào. Ví dụ với stride = 1 thì bộ lọc sẽ trượt trên ảnh theo từng điểm ảnh, với stride = 2 thì sẽ trượt qua 2 điểm ảnh. Bước trượt càng lớn thì ma trận đầu ra càng nhỏ ứng với lượng thông tin được trích xuất ít hơn.

• Padding: Kích thước bộ lọc càng lớn cũng như stride càng lớn sẽ làm giảm kích thước của ma trận đầu ra. Nếu muốn kích thước đầu ra vẫn giữ nguyên ta cần chèn thêm các giá trị bị khuyết ở 4 viền (lề) của ma trận. Có nhiều phương pháp padding như:

Padding hằng số (constant): chèn một hằng số vào các vị trí bị khuyết của ma trận.

Padding số không (constant): đây là trường hợp đặc biệt của padding hằng số (với hằng số là số 0).

Padding nhân bản (replication): mở rộng ma trận bằng cách sao chép các giá trị xung quanh lề vào phần bị khuyết.

Padding phản chiếu (reflect): tương tự như padding nhân bản nhưng lật ngược theo lề ma trận (phản chiếu).

• Depth: khidepth=1, các giá trị của ma trận là số vô hướng (scalar number), khidepth>1

các phần tử là một vector có depth phần tử.

3.2.7 Phép hợp nhất (Pooling)

Phép pooling hoạt động độc lập trên từng vùng dữ liệu đầu vào được lấy mẫu tương tự như phép tích chập, các siêu tham số như kích thước bộ lọc, stride cũng có ý nghĩa tương tự. Tuy nhiên, phép pooling không thực hiện phép nhân ma trận mà thay vào đó thực hiện các phép toán thống kê như tìm giá trị lớn nhất (max pooling),tìm giá trị nhỏ nhất (min pooling), tìm giá trị trung bình (mean pooling) hay tìm giá trị trung vị (median pooling). Trong thực tế, max pooling được sử dụng phổ biến nhất và min pooling ít được sử dụng nhất.

Lợi ích của phép này giúp giảm kích thước của đầu ra của các tầng mạng nhằm giảm nhiều lần số lượng tính toán và giúp kiểm soát được vấn đề quá khớp (overfitting).

Hình 3.16 là ví dụ cho hàm max pooling và average pooling với cùng input, kích thước kernel là2×2.

Hình 3.16: Ví dụ về Max Pooling và Average Pooling (nguồn [38])

3.2.8 Mạng nơ-ron tích chập (Convolutional Neural Network - CNN)

Mạng nơ-ron tuy đã xóa tan mùa đông AI, giải quyết bài toán XOR mà perceptron không thể giải được nhưng vẫn còn nhiều yếu điểm. Thông qua ví dụ tối sắp trình bày sau, sẽ thể hiện

rõ nét yếu điểm của mạng ANN. Giả sử dữ liệu đầu vào là ảnh RGB, với kích thước300x300

điểm ảnh (kích thước nhỏ), vì là ảnh màu RGB nên mỗi điểm ảnh là 1 vector 3 phần tử . Vậy dữ liệu đầu vào có 270 ngàn đặc trưng. Giả sử ở tầng thứ nhất của mạng, ta sử dụng 1000 hidden unit, thì số trọng số của tầng đầu không tính bias là 270 triệu trọng số. Và đây chỉ mới là trọng số của lớp đầu tiên. Nếu tăng độ sâu của mạng thì số trọng số sẽ còn tăng nhanh theo cấp số mũ. Mô hình giờ đây trở nên dễ dàng bị quá khớp và cần một khả năng tính toán cực cao (không khả thi).

Mạng ANN truyền thống chỉ còn phù hợp với các kiểu dữ liệu dạng bảng với ít đặc trưng, và trở nên vô dụng với các dữ liệu đa phương tiện như ảnh, âm thanh với rất nhiều đặc trưng. Dễ thấy các dữ liệu như âm thanh và ảnh, các điểm ảnh ở gần nhau thường có liên kết với nhau hơn là các điểm ảnh ở xa nhau. Phép tích chập đã trình bày ở trên phù hợp để rút trích đặc trưng của dữ liệu làm giảm chiều dữ liệu, hơn nữa nó còn có thể chia sẻ trọng số với nhau. Áp dụng tích chập đã ngăn chặn việc bùng nổ trọng số, giảm khối lượng tính toán đáng kể nhưng vẫn đảm bảo khả năng học của mô hình. Mô hình mạng tích chập thường được định nghĩa thành 2 phần:

Bộ trích xuất đặc trưng:

Phần này thực hiện một loạt các phép tích chập tuần tự và hợp nhất nhằm mục đích rút trích đặc trưng từ dữ liệu đầu vào.

Điểm khác biệt của CNN và ANN là bộ rút trích được đặc trưng. Nó giải quyết bài toán bùng nổ trọng số mà vẫn trích được đặc trưng của dữ liệu. Bằng cách sử dụng bộ lọc lên các vùng ảnh hưởng (receptive field) của dữ liệu đầu vào để tạo ra các ma trận đặc trưng (feature map). Tại mỗi tầng, nó áp dụng tích chập nhiều lần trên một tập các bộ lọc, tuần tự, mỗi lần sử dụng một bộ lọc khác nhau, tạo thành một tập các ma trận đặc trưng. Tập ma trận đặc trưng này tiếp tục được sử dụng làm đầu vào cho lớp tích chập tiếp theo hoặc bộ dự đoán.

Ngoài ra, một lớp rất quan trọng trong phần này đó là lớp hợp nhất (pooling). Các lớp hợp nhất này thường là max pooling hoặc mean pooling. Chúng được sử dụng giữa các lớp tích chập, mục đích đề giảm kích thước dữ liệu nhưng vẫn giữ được các đặc trưng quan trọng. Nhờ đó, giảm thiểu số lượng tham số và thời gian tính toán của mô hình.

Bộ dự đoán (phân loại, hồi quy ...):

Phần này tiến hành thực hiện dự đoán (ra quyết định) trên các đặc trưng được rút trích được từ phần trích xuất đặc trưng.

Trong phần này, mô hình thường sử dụng là dùng các lớp kết nối đầy đủ (fully connected layer) tương tự như mạng ANN thông thường. Tùy vào từng bài toán mà lớp cuối được lựa chọn,

ví dụ như sigmoid hoặc tanh để phân loại hai lớp, hay softmax để phân loại nhiều lớp.

3.2.9 Mạng nơ-ron hồi quy (Recurrent Neural Network - RNN)

Như đã trình ở 3.2.2 thì mạng nơ-ron bao gồm 3 phần chính là tầng đầu vào, tầng ẩn và tầng đầu ra, ta có thể thấy là đầu vào và đầu ra của mạng này là độc lập với nhau. Như vậy mô hình này không phù hợp với những bài toán dạng chuỗi như dự đoán từ loại (Part-of-Speech Tagging). Vì những dự đoán tiếp theo như từ loại của từ tiếp theo phụ thuộc vào vị trí của nó của những từ đằng trước nó. Và như vậy RNN ra đời, với ý tưởng chính là tạo ra một bộ nhớ để lưu lại thông tin từ những lần tính toán trước và dựa vào đó để có thể đưa ra dự đoán chính xác nhất cho lần dự đoán hiện tại.

Hình 3.17: Mạng RNN (nguồn [6])

Hình 3.17 mô tả quá trình tính toán của một mạng RNN. Với dữ liệu gồm N phần tử, ta có một mạng nơ-ron chuỗi tuần tự có N tầng. Ví dụ ta có một câu gồm 6 chữ "Nhận diện hành động con người”, thì mạng nơ-ron được triển khai sẽ gồm 6 tầng nơ-ron tương ứng với mỗi chữ một tầng. Lúc đó việc tính toán bên trong RNN được thực hiện như sau:

• xt là đầu vào tại bước t. Ví dụ, x1 là một vec-tơ one-hot tương ứng với từ thứ 2 của câu (diện).

• st là trạng thái ẩn tại bướct. Đây chính là bộ nhớ của mạng.st được tính toán dựa trên cả các trạng thái ẩn phía trước và đầu vào tại bước đó:st = f(U xt) +Wst−1. Hàm f thường là một hàm phi tuyến tính như tanh hay ReLu. Để làm phép toán cho phần tử ẩn đầu tiên ta cần khởi tạo thêms−1, thường được khởi tạo bằng0.

3.2.10 Mạng nơ-ron tích chập trên đồ thị (Graph Neural Network - GNN)

Trên thực tế, có rất nhiều loại dữ liệu mà ta không thể biểu diễn ở dạng ma trận N chiều như ảnh, âm thanh hay dữ liệu dạng bảng. Có thể kể đến như dữ liệu tương tác mạng xã hội.

Ta không thể sử dựng mạng CNN thông thường để trích suất đặc trưng, bởi vùng tiếp nhận (receptive field) có kích thước không cố định. Vì thế cần có cách thiết kế đặc thù cho bộ lọc hoặc các kỹ thuật khác. Mạng nơ-ron tích chập trên đồ thị được phân thành hai nhóm chính:

• Vertex Embedding (Node embedding): ánh xạ 1 đỉnh trong đồ thị sang 1 không gian eu- clidean D chiều. Ta hoàn toàn có thể sử dụng các các vector này nhằm mục đích mô hình hóa, hay áp dụng vào các giải thuật gom cụm hay phân loại. Giải thuật được sử dụng phổ biến ở loại này là các giải thuật dựa trên Random Walk. Giải thuật đơn giản lấy chuỗi các đỉnh trên đồ thị một cách ngẫu nhiền, sau đó đưa qua mô hình Word2Vec [12]. Các đỉnh được coi là từ vừng, và sẽ được nhúng thành các vector đặc trưng. Các một vài giải thuật cải tiến về sau, chủ yếu thay đổi cách lấy chuỗi trên các đỉnh như DeepWalk [26], hay Node2Vec [14].

Hình 3.18: Giải thuật random walk (nguồn [3])

• Graph Embedding: tương tự như trên, nhưng là ánh xạ cả 1 đồ thị thành 1 vector duy nhất. Hiện nay, mạng nơ-ron tích chập trên đồ thị đang tồn tại hai hướng tiếp cận chính. Một là mạng nơ-ron tích chập đồ thị quang phổ (Spectral GCN), mạng sử dụng phép phân rã trị

Một phần của tài liệu Nhận diện hành động qua video (Trang 39)

Tải bản đầy đủ (PDF)

(90 trang)