Tải bản đầy đủ - 0 (trang)
3 Kiến trúc đề xuất

3 Kiến trúc đề xuất

Tải bản đầy đủ - 0trang

Chương 5. Nhận diện người từ dữ liệu chuyển động sử dụng kiến trúc tương tự Google Inception và RNN



▪ Học đặc trưng cho từng cảm biến đơn lẻ:

Dữ liệu đầu vào của một cảm biến có dạng 𝑋 (𝑘) với kích thước 𝑑 (𝑘) × 2𝑓 × 𝑇,

với đó 𝑑 𝑘 là số lượng loại thơng số, đó f là kích thước dữ liệu trong miền tần số

và 𝑇 là số khoảng thời gian (time interval). Với mỗi khoảng thời gian 𝑡, ma trận

(𝑘)



𝑋..𝑡 được đưa vào đầu vào cho các conv layer riêng để học các đặc trưng cấp cao



(high-level features) từ các cảm biến đơn lẻ. Kết quả thu được qua mỗi conv layer

(𝑘,1)



riêng lần lượt là 𝑋..𝑡

(𝑘,3)



vector 𝑥..𝑡



(𝑘,2)



, 𝑋..𝑡



(𝑘,3)



. Tập hợp {𝑥..𝑡



(𝑘,3)



và 𝑋..𝑡



(𝑘,3)



. Ma trận 𝑋..𝑡



được biến đổi về dạng

(3)



} từ 𝐾 cảm biến được gộp lại tạo thành ma trận 𝑋..𝑡



với 𝐾 dòng làm đầu vào cho các conv kế tiếp.



▪ Học đặc trưng kết hợp từ dữ liệu gộp từ các đặc trưng của cảm biến đơn lẻ:

(3)



Ma trận 𝑋..𝑡



chính là tập hợp các đặc trưng cấp cao từ 𝐾 cảm biến. Các conv



layer tiếp tục được sử dụng để học các mối quan hệ từ dữ liệu gộp này. Kết quả

thu được qua mỗi conv layer (Merge Convolutinal Layer 1, Merge Convolutinal

(4)



(5)



(6)



(6)



Layer 2, Merge Convolutinal Layer 3) lần lượt là 𝑋..𝑡 , 𝑋..𝑡 và 𝑋..𝑡 . Sau đó 𝑋..𝑡

(𝑓)



được biến đổi về vector 𝑥..𝑡 , nối với giá trị độ dài mỗi khoảng thời gian là 𝜏, tạo

(𝑐)



(𝑐)



(𝑐)



thành vector 𝑥..𝑡 . Tập hợp {𝑥..𝑡 } tạo thành 𝑥𝑡 , chính là đầu vào của các recurrent

layer.



Với mỗi conv layer, DeepSense sử dụng 64 bộ lọc với hàm kích hoạt ReLU, áp dụng

thêm kỹ thuật Batch Normalization [50].

5.2.2.2 Recurrent layer

DeepSense sử dụng kiến trúc mở rộng của RNN là GRU (Gated Reccurrent Unit)

[45] với 2 layer xếp chồng (Recurrent layer 1 và Recurrent layer 2) để học các đặc

(𝑐)



trưng theo thời gian. Dữ liệu vào {𝑥..𝑡 } với 𝑡 = 1, 2, . . . , 𝑇, thu được từ conv layer

(𝑟)



trước đó được đưa vào các GRU để tạo ra đầu ra {𝑥𝑡 } là dữ liệu đầu vào cho output

layer.



66



Chương 5. Nhận diện người từ dữ liệu chuyển động sử dụng kiến trúc tương tự Google Inception và RNN



5.2.2.3 Output layer

(𝑟)



Để nhận dạng, {𝑥𝑡 } thu được từ các Recurrent layer cần biến đổi về dạng vector



với số lượng phần tử cố định. DeepSense sử dụng phép trung bình để tạo ra vector đặc

(𝑟)



trưng cuối cùng 𝑥 (𝑟) theo công thức 𝑥 (𝑟) = (∑𝑇𝑡=1 𝑥𝑡 )/𝑇. 𝑥 (𝑟) là đầu vào của

𝑆𝑜𝑓𝑡𝑚𝑎𝑥 layer cuối cùng phục vụ cho việc phân lớp (định danh người dùng).



5.3 Kiến trúc đề xuất



Hình 5.2 Kiến trúc đề xuất DeepSense-Inception

với các mô đun tương tự Google Inception và các lớp max pooling thêm vào



Kiến trúc đề xuất với tên DeepSense-Inception giúp nhận dạng người dùng từ dữ liệu

chuyển động với đặc trưng gait, kế thừa từ kiến trúc của DeepSense [5], tuy nhiên việc

67



Chương 5. Nhận diện người từ dữ liệu chuyển động sử dụng kiến trúc tương tự Google Inception và RNN



trích rút đặc trưng từ dữ liệu thu nhận từ các cảm biến riêng lẻ được thực hiện bằng mô

đun tương tự Google Inception [6] để mang lại kết quả trích rút đặc trưng hiệu quả hơn

so với việc sử dụng CNN truyền thống. Bên cạnh đó, các max pooling layer cũng được

thêm vào giúp giảm số lượng tham số khi học đặc trưng kết hợp sau khi trộn các đặc

trưng cấp cao thu được từ các cảm biến đơn lẻ. Hình 5.2 thể hiện kiến trúc đề xuất với

các thành phần mới khác biệt so với DeepSense được thể hiện với chữ màu đỏ:

Inception-like module, Merge Max Pooling Layer 1, Merge Maxpooling Layer 2.

5.3.1 Tiền xử lý dữ liệu

Bài toán cần giải quyết là nhận dạng người từ dữ liệu thu được từ 2 loại cảm biến

chuyển động 𝑆 = {𝑆𝑖 }, 𝑖 ∈ {1,2} (cảm biến gia tốc – accelerometer và con quy hồi

chuyển – gyroscope). Dữ liệu thu được của mỗi cảm biến gia tốc là một ma trận 𝑉 với

kích thước 𝑑 × 𝑛 và một vector 𝑢 chứa các mốc thời gian ghi nhận dữ liệu (timestamp)

với kích thước 𝑛 trong đó 𝑑 là số lượng loại thơng số (ở đây 𝑑 = 3 tương ứng với 3



loại thông số 𝐴𝑥, 𝐴𝑦, 𝐴𝑧 cho cảm biến gia tốc và Gx, Gy, Gz cho con quay hồi chuyển)

và 𝑛 là số lần lấy mẫu. Dựa vào mốc thời gian (timestamp) trong vector 𝑢, ma trận 𝑉



được chia thành các mẫu (sample) với độ lớn 𝑘 giây. Mỗi mẫu gồm 𝑇 các khoảng thời



gian không chồng lấn (non-overlapping time interval) với độ lớn 𝑡 sao cho 𝑘 = 𝑇 × 𝑡.

Trên thực tế thì tần xuất lấy mẫu (sampling rate) của các cảm biến khơng ổn định



do đó q trình nội suy tuyến tính (linear interpolation) được áp dụng vào trong mỗi

khoảng thời gian 𝑡 để tạo ra dữ liệu với số lần lấy mẫu cố định . Do đó, mỗi khoảng thời



gian với độ lớn 𝑡 có thể biểu diễn bằng ma trận P với kích thước 𝑑 × 𝑠. Biến đổi Fourier



được áp dụng cho mỗi phần tử trong ma trận P để thu được vector 𝑞 với kích thước (2𝑑 ∗



𝑠). Vector 𝑞 được tổ chức theo dạng: [𝑥1 _𝑟𝑒𝑎𝑙, 𝑥1 _𝑖𝑚𝑔, 𝑦1 _𝑟𝑒𝑎𝑙, 𝑦1 _𝑖𝑚𝑔, 𝑧1 _𝑟𝑒𝑎𝑙,

𝑧1 _𝑖𝑚𝑔, . . . , 𝑥𝑠 _𝑟𝑒𝑎𝑙, 𝑥𝑠 _𝑖𝑚𝑔, 𝑦𝑠 _𝑟𝑒𝑎𝑙, 𝑦𝑠 _𝑖𝑚𝑔, 𝑧𝑠 _𝑟𝑒𝑎𝑙, 𝑧𝑠 _𝑖𝑚𝑔 ], trong đó 𝑥𝑖 , 𝑦𝑖 , 𝑧𝑖



là các thông số ghi nhận tại lần lấy mẫu thứ 𝑖; 𝑟𝑒𝑎𝑙 và 𝑖𝑚𝑎𝑔 chỉ phần thực phần và phần

ảo của thông số qua phép biến đổi Fourier. Vì thế, mỗi mẫu (sample) có độ dài k giây là

một ma trận X với kích thước (2𝑑 ∗ 𝑠) × 𝑇.



68



Chương 5. Nhận diện người từ dữ liệu chuyển động sử dụng kiến trúc tương tự Google Inception và RNN



Áp dụng phương pháp biến đổi trên cho dữ liệu từ 2 loại cảm biến chuyển động thu

được tập {𝑋 𝑖 } là dữ liệu đầu vào cho hệ thống DeepSense Inception.

5.3.2 Kiến trúc DeepSense-Inception



5.3.2.1 Mô đun tương tự Google Inception (Inception-like module)

Do mô đun này dựa trên kiến trúc của mô đun Google Inception [6] nên lý thuyết về

Google Inception được trình bày trước khi mơ tả kiến trúc của mơ đun đề xuất.

❖ Google Inception



Hình 5.3 Kiến trúc mô đun Inception [6].



Năm 2014, Christian Szegedy cùng cộng sự đi tìm lời giải cho vấn đề giảm gánh

nặng tính tốn cho các mạng học sâu (deep neural network) và phát minh ra kiến trúc

Inception [6]. Thay vì xếp chồng các layer theo thứ tự như trong các mạng thông thường,

mô đun Inception cho phép thực hiện các thao tác tính tốn trên nhiều nhánh song song

như thể hiện trong Hình 5.1. Mỗi nhánh là sự kết hợp của các convolutional filter với

các kích thước 1 × 1, 3 × 3, 5 × 5 và/hoặc max pooling filter. Mỗi nhánh nhận đầu vào

là kết quả của layer phía trước. Kết quả đầu ra của mỗi nhánh được kết hợp lại



(concatenation) thành đầu ra cuối cùng của mô đun Inception. Việc sử dụng các

69



Chương 5. Nhận diện người từ dữ liệu chuyển động sử dụng kiến trúc tương tự Google Inception và RNN



convolutional filter với kích thước 1𝑥1 theo sau bởi convolutional filter kích thước



3 × 3 hoặc 5 × 5 khơng chỉ cho phép giảm kích thước dữ liệu, đảm bảo hiệu năng tính



tốn mà còn giúp tăng tính phi tuyến (nonlinearity) của mạng. Bên cạnh đó, việc sử dụng

các convolutional filter với nhiều kích thước khác nhau (1 × 1, 3 × 3, 5 × 5) và max



pooling filter, giúp mô đun Inception tăng cường khả năng rút trích đặc trưng hiệu quả

hơn so với CNN thông thường.

❖ Kiến trúc mô đun tương tự Google Inception

Thay vì sử dụng 3 conv layer để học các đặc trưng cấp cao từ dữ liệu của mỗi cảm

biến riêng lẻ, kiến trúc đề xuất sử dụng mô đun tương tự Google Inception (thể hiện

trong Hình 5.5) để làm tác vụ này hiệu quả hơn. Mỗi 𝑋 𝑖 - một ma trận với kích thước

(2𝑑 ∗ 𝑠) × 𝑇 với đó 𝑑 là số lượng loại thơng số, 𝑠 là số lần lấy mẫu trong mỗi khoảng



thời gian t và T là số lượng khoảng thời gian - thu được từ bước tiền xử lý là được xử lý

ứng với một mơ đun tương tự Inception.



Hình 5.4 Cấu trúc của mô đun tương tự Inception



70



Chương 5. Nhận diện người từ dữ liệu chuyển động sử dụng kiến trúc tương tự Google Inception và RNN



Với mỗi khoảng thời gian 𝑡, 1 ≤ 𝑡 ≤ 𝑇, ma trận 1 × (2𝑑 ∗ 𝑠), 𝑋𝑡𝑖 được tổ chức theo



cấu trúc giống vector 𝑞 như mô tả ở phần trước, là đầu vào cho mô đun tương tự



Inception. Với mỗi lần lấy mẫu thu được 3 thông số (𝐴𝑥, 𝐴𝑦, 𝐴𝑧 hoặc 𝐺𝑥, 𝐺𝑦, 𝐺𝑧), qua

phép biến đổi Fourier tạo thành 6 giá trị. Vì vậy, cứ mỗi 6 giá trị liên tiếp trong ma trận

1 × (2𝑑 ∗ 𝑠) đại diện cho dữ liệu chuyển động trong miền tần số tại mỗi lần lấy mẫu.

Do đó, bộ lọc (filter) sử dụng trong mơ đun này có kích thước theo dạng (1, 𝑚)



với 𝑚 = 6 ∗ 𝑙; 1 ≤ 𝑙 ≤ 𝑠. Đặt 𝐿 là số nhánh song song trong mô đun (chỉ tính nhánh



với thao tác convolution, khơng tính nhánh pooling). Với mỗi giá trị của 𝑙, 1 ≤ 𝑙 ≤ 𝐿,

nhánh song song thứ 𝑙 được tạo ra bằng cách kết hợp convolutional filter 1 × 1 theo sau

bởi convolutional filter 1 × 6𝑙. Nhánh song song cuối cùng được tạo ra bằng cách sử



dụng max pooling fiter với kích thước (1,6) và convolutional filter 1 × 1. Số lượng

convolutional filter ở các nhánh bằng nhau và hàm kích hoạt sử dụng là hàm 𝑅𝑒𝐿𝑈.



𝑖

Gọi ma trận 𝑋(𝑡,𝑙)

là đầu ra của nhánh song song thứ 𝑙 trong mô đun với dữ liệu vào



𝑖

là 𝑋𝑡𝑖 . Tất cả các thành phần trong tập {𝑋(𝑡,𝑙)

} được nối với nhau để tạo ra đầu ra cuối

(𝑖,𝐿+1)



của mô đun này 𝑋𝑡



.



5.3.2.2 Merge Convolutional Layer và Pooling Layer

Kiến trúc này tương tự trong DeepSense tuy nhiên ngồi sử dụng 3 conv layer để

trích rút các đặc trưng từ dữ liệu gộp từ các đặc trưng của cảm biến đơn lẻ, 2 max pooling

layer (Merge Max Pooling Layer 1, Merge Maxpooling Layer 2) nhằm giảm số lượng

tham số (parameter). Với dữ liệu từ 2 loại sensor (cảm biến gia tốc và con quay hồi

(1,𝐿+1)



chuyển), qua các mô đun tương tự Inception thu được kết quả là ma trận 𝑋𝑡

(2,𝐿+1)



𝑋𝑡







. Hai ma trận trên được phẳng hóa (flatten out) thành các vector sau đó kết hợp



các vector này thành ma trận 𝑋𝑡 với 2 dòng. Mối quan hệ giữa các đặc trưng từ cảm biến



gia tốc và từ con quay hồi chuyển được học bằng cách sử dụng bộ lọc dạng (2, 𝑐𝑜𝑛𝑣1)

(𝑐𝑜𝑛𝑣1)



trong Merge Convolutional Layer 1 để tạo ra ma trận 𝑋𝑡

71



. Bộ lọc dạng (1, 𝑐𝑜𝑛𝑣2)



Chương 5. Nhận diện người từ dữ liệu chuyển động sử dụng kiến trúc tương tự Google Inception và RNN

(𝑐𝑜𝑛𝑣2)



được sử dụng trong Merge Convolutional Layer 2 tạo ra kết quả 𝑋𝑡

(𝑝𝑜𝑜𝑙1)



xử lý bởi Merge Max Pooling Layer 1 cho đầu ra 𝑋𝑡

(𝑝𝑜𝑜𝑙2)



(𝑓)



(flatten out) thành vector 𝑥𝑡



(𝑐𝑜𝑛𝑣3)



(𝑝𝑜𝑜𝑙2)



. Sau đó, ma trận 𝑋𝑡



là đầu vào của recurrent layer.



được



. Cuối cùng, Merge



Convolutional Layer 3 áp dụng bộ lọc dạng (1, 𝑐𝑜𝑛𝑣3) sinh nên 𝑋𝑡

bởi Merge Max Pooling Layer 2 tạo ra 𝑋𝑡



(𝑐𝑜𝑛𝑣2)



. 𝑋𝑡



, được xử lý



được làm phẳng



5.3.2.3 Recurrent Layer và Output Layer

Thành phần này trong DeepSense được giữ nguyên trong kiến trúc đề xuất. Kiến trúc

GRU (Gated Reccurrent Unit) với 2 layer xếp chồng được dùng để học mối quan hệ

theo thời gian. GRU được sử dụng rộng rãi do có kiến trúc đơn giản hơn nhưng đạt hiệu

(𝑓)



quả tương tự so với LSTM trong nhiều tác vụ [44]. Dữ liệu vào {𝑥𝑡 } với 𝑡 = 1, 2, . . . , 𝑇

(𝑟)



(𝑟)



qua các GRU layer để tạo ra đầu ra {𝑥𝑡 }. Tập {𝑥𝑡 } biến đổi thành vector đặc trưng



cuối cùng 𝑥 (𝑟) là đầu vào của 𝑆𝑜𝑓𝑡𝑚𝑎𝑥 layer phục vụ cho việc định danh (phân lớp –

(𝑟)



classification); với 𝑥 (𝑟) = (∑𝑇𝑡=1 𝑥𝑡 )/𝑇. 𝑥 (𝑟) .



Để hiểu kiến trúc GRU đơn giản hơn như thế nào so với LSTM (trình bày trong mục

3.3.2), phần dưới đây trình bày kiến trúc của GRU. Gated Recurrent Unit (GRU) [45]

có thể coi là một biến thể của LSTM, được đề xuất bởi Kyunghyun Cho và đồng sự trong

năm 2014 với cấu trúc thể hiện trong hình 5.6.



Hình 5.5 Kiến trúc GRU [44].



72



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

3 Kiến trúc đề xuất

Tải bản đầy đủ ngay(0 tr)

×