Nội dung chính của đồ án: Chương1.Tổng quan đề tài Trình bày đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nôi dung ̣ nghiên cứu Chương 2: Xây dựng hệ thống Trình bày các lý thuyết
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA ĐIỆN-ĐIỆN TỬ
BÁO CÁO ĐỒ ÁN CHUYÊN NGÀNH
ĐIỆN TỬ VIỄN THÔNG
Nguyễn Quang Vinh 1811505410244
Giảng viên hướng dẫn: TS Nguyễn Thị Khánh Hồng
Tháng 5/2022
Trang 2TÓM TẮT
Đề tài: THIẾT KẾ MÔ HÌNH TRỢ LÝ GIỌNG NÓI ỨNG DỤNG EDGE AI ĐIỀU KHIỂN
THIẾT BỊ ĐIỆN TRONG GIA ĐÌNH Sinh viên thực hiện: Nguyễn Quang Tuấn
- … (Tham khảo thêm tài liệu ở SmartSensor)
2 Data: Đây là tập dữ liệu được xây dựng bởi Trần Duy Điền và Mai Chiếm An nhằm mục đích thực hiện đề tài
Dữ liệu của dự án bao gồm tất các các đoạn audio được dùng để huấn luyện mô hình học máy cho dự án Các file âm thanh được lưu dưới định dạng wav với kích thước > 1s mỗi file, được thu thập trực tiếp của gần ~50 người, tỷ lệ Nam/nữ = 70/30, chủ yếu là người miền Trung, độ tuổi từ 18-35 tuổi
Trang 33 en.fp-ai-sensing1_v4.0.3.zip: Thư viện xây dựng cho các cảm biến trong đó có Audio do hãng ST cung cấp
Ở đây có thư viện xử lý âm thanh chính ở vi điều khiển (Log mel spectrograms, MFCC, ) được xây dựng bằng ngôn ngữ C nằm ở:
STM32CubeFunctionPack_SENSING1_V4.0.3\Middlewares\ST\STM32_AI_AudioPreprocessing Library\Src\feature_extraction.c
4 Source Code: Toàn bộ source code cuối cùng của project
a Model AI on STM32: Source code xây dựng mô hình CNN cho âm thanh được sử dụng để triển khai lên VĐK (Python)
- model: chứa các model đã training được (model_1_3_21.h5 được sử dụng
để triển khai xuống vđk)
- data: data dưới dạng dataframe
- x_test_mel.csv/y_test_mel.csv: data validation dưới VĐK
- preprocesing_mel.py : code trích xuất đặc trưng log Mel
- model_mel: Model CNN
b CNN for Audio: Source code hướng dẫn xây dựng mô hình CNN cơ bản (Python)
- audio_processing.py: trích xuất đặc trưng
- train.py: train model CNN
- Prepare_dataset.py: xây dựng dataframe
- convert TF-TFlite: convert model tensorflow sang dạng TF lite
c AI on STM32: Source code implement CNN model lên STM32 ©
5 Demo: Hình ảnh, video demo của project
- Video demo
- Hình ảnh sản phẩm
Trang 4TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA ĐIỆN- ĐIỆN TỬ CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAMĐộc lập - Tự do - Hạnh phúc
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Giảng viên hướng dẫn: T.S Nguyễn Thị Khánh Hồng
Sinh viên thực hiện: Nguyễn Quang Tuấn Mã SV: 1811505410243
Nguyễn Quang Vinh Mã SV: 1811505410244
1 Tên đề tài: THIẾT KẾ MÔ HÌNH TRỢ LÝ GIỌNG NÓI ỨNG DỤNG EDGE AI ĐIỀU
KHIỂN THIẾT BỊ ĐIỆN TRONG GIA ĐÌNH
2 Các số liệu, tài liệu ban đầu:
3 Nội dung chính của đồ án:
Chương1.Tổng quan đề tài
Trình bày đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nôi dung ̣ nghiên cứu
Chương 2: Xây dựng hệ thống
Trình bày các lý thuyết có liên quan đến các vấn đề mà đề tài sẽ dùng để thực hiện thiết
kế, thi công cho đề tài
Chương 3: Thiết lập mô hình nhận dạng âm thanh
Giới thiệu tổng quan về các yêu cầu của đề tài về thiết kế và các tính toán liên quan đến đề tài
Chương 4: Triển khai mô hình nhận dạng âm thanh lên thiết bị nhúng STM32
Thi công phần cứng, viết code và nộp chương trình cho vi điều khiển
Đánh giá kết quả và Hướng Phát Triển
Chương này trình bày ngắn gọn những kết quả đã thu được dựa vào những phương pháp,
Trang 6LỜI MỞ ĐẦU
Hiện nay, nền công nghệ hiện đại đóng vai trò rất qua trọng trọng trong cuộc sống của con người, Những thành tựu của cuộc cách mạng khoa học kỹ thuật được áp dụng rộng rãi vào nền kinh tế và cuộc sống sinh hoạt của con người, đưa đến những đổi thay chưa từng có trong lịch sử loài người
Là sinh viên của chuyên ngành Điện Tử Viễn Thông, sau thời gian học tập và rèn luyện tại Trường Đại học Sư Phạm Kỹ Thuật, được sự giảng dạy tận tình của các thầy cô cùng với sự cố gắng nỗ lực của bản thân, em đã được giao đề tài tốt nghiệp “ Trợ lí ảo giọng nói văn phòng ứng dụng EDGE điều khiển các thiết bị điện trong gia đình”.Khi được giao đồ án tốt nghiệp, xác định đây
là công việc quan trọng nhằm đánh giá lại toàn bộ kiến thức mà mình đã tiếp thu được trong quá trình học tập tại trường, em đã có nhiều cố gắng Đề tài này là một chuyên ngành còn khá mới mẻ
ở Việt Nam, cho nên trong đồ án này em chỉ tập trung đi sâu vào công việc chính là , nghiên cứu huấn luyện mô hình AI và các chuẩn giao tiếp với nhau
Đồ án gồm 3 phần :
Chương 1: Tổng quan về đề tài
Chương 2: Xây dựng hệ thống
Chương 3: Thiết lập mô hình nhận dạng âm thanh
Chương 4: Mô hình nhận dạng tích hợp thiết bị nhúng STM32
Sau 3 tháng tìm hiểu và tham khảo, với ý thức và sự nỗ lực của bản thân cùng với sự giúp đỡ tận tình của các thầy, cô đặc biệt là TS Nguyễn Thị Khánh Hồng đã giúp em tận tình trong quá trình làm đồ án này Qua bản đồ án này cho em xin được bày tỏ lời cảm ơn chân thành tới TS Nguyễn Thị Khánh Hồng và ThS Nguyễn Huỳnh Nhật Thương-GD công ty TNHH TAPIS Trong quá trình hoàn thành đồ án, với trình độ kiến thức chuyên môn chưa nhiều, kinh nghiệm thực tế còn ít
và thời gian có hạn nên đồ án của em không thể tránh được những thiếu sót Do đó, em kính mong được sự chỉ bảo thêm của các thầy, cô và đóng góp của các bạn để em được hoàn thiện hơn
Em xin chân thành cảm ơn!
Đà Nẵng, ngày 4 tháng 6 năm 2022
Trang 7LỜI CAM ĐOAN
Đồ án này là công trình nghiên cứu của nhóm Tất cả các đoạn văn, ý kiến, quan điểm của người khác sử dụng trong bài đều được dẫn nguồn và lập danh mục tham khảo ở cuối đồ án Đồ
án này chỉ được nộp với mục đích thực hiện đồ án tốt nghiệp
Tôi thực hiện đề tài không sao chép từ bất kì một bài viết nào đã được công bố mà không trích dẫn nguồn gốc Nếu có bất kì sự vi phạm nào, tôi thực hiện sẽ chịu hoàn toàn trách nhiệm
Đã bổ sung, cập nhật theo yêu cầu của Giảng viên phản biện và Hội đồng chấm Đồ án tốt nghiệp họp ngày ngày 17, 18/6/2022
Sinh viên thực hiện
Trang 8MỤC LỤC
Danh mục các hình 5
CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI 1
1.1 Tính cấp thiết của đề tài 1
1.2 Các giải pháp hiện tại 1
1.3 Đề xuất giải pháp 2
1.4 Kết luận chương 4
CHƯƠNG 2 XÂY DỰNG HỆ THỐNG 5
2.1 Giới thiệu chương 5
2.2 Khối cảm biến 5
2.2.1 Microphone 5
2.3 Led thông báo trạng thái 6
2.4 Khối điều khiển trung tâm 7
2.5 Sơ đồ khối tổng thể của hệ thống 10
2.6 Tổng kết chương 10
CHƯƠNG 3 THIẾT LẬP MÔ HÌNH NHẬN DẠNG ÂM THANH 11
3.1 Tổng quan về mạng nơ-ron tích chập 11
3.2 Công cụ xây dựng mô hình 12
3.2.1 TensorFlow 13
3.2.2 Keras 14
3.3 Xây dựng mô hình 15
3.3.1 Chuẩn bị dữ liệu 16
3.3.2 Trích xuất đặc trưng Log-Mel Spectrogram 17
Trang 93.3.3 Cấu trúc mô hình 21
3.3.4 Kết quả của mô hình 23
3.4 Kết luận chương 25
CHƯƠNG 4 TRIỂN KHAI MÔ HÌNH NHẬN DẠNG LÊN THIẾT BỊ NHÚNG STM32 26
4.1 Giới thiệu chương 26
4.2 Nhận dạng âm thanh bằng mô hình AI trên Vi điều khiển STM32 26
4.2.1 Nhúng mô hình xuống vi điều khiển 26
4.2.2 Dữ liệu âm thanh thực tế 30
4.2.3 Trích đặc trưng Log-Mel Spectrogram trên vi điều khiển 32
4.2.4 Thực thi mô hình trên vi điều khiển để nhận dạng âm thanh 32
4.3 Kết luận chương 33
ĐÁNH GIÁ KẾT QUẢ, HƯỚNG PHÁT TRIỂN 34
1 Đánh giá kết quả 34
1.1 Kết quả 34
1.2 Đánh giá 35
2 Kết luận và hướng phát triển 36
2.1 Kết luận 36
2.2 Hướng phát triển 36
Tài liệu tham khảo 37
Trang 10Danh mục các hình
Hình 1.1 Trợ lý ảo GoogleHome và Amazon Alexa Echo Dot3 2
Hình 1.2 Các công cụ và công nghệ sử dụng trong hệ thống 3
Hình 1.3 Sơ đồ khối tổng quát của hệ thống 4
Hình 2.1. Microphone MAX9814 5
Hình 2.2 Led đơn 6
Hình 2.4 Các dòng vi điều khiển STM32 7
Hình 2.5 Các dòng vi điều khiển STM32 hỗ trợ AI 8
Hình 2.6 Sơ đồ tổng quát về ARM Cortext-M7 9
Hình 2.7 Vi điều khiển STM32F746NG 9
Hình 2.8 Sơ đồ khối tổng thể của hệ thống 10
Hình 3.1 Cấu trúc mạng CNN cơ bản 11
Hình 3.2 TensorFlow 13
Hình 3.3 High-level APIs của TensorFlow 14
Hình 3.4 Các bước thực hiện nhận dạng âm thanh 15
Hình 3.5 Các âm thanh trong tập dữ liệu 17
Hình 3.6 Quá trình trích đặc trưng Log-Mel Spectrogram 17
Hình 3.7 Quá trình biến đổi STFT 18
Hình 3.8 Chuyển phổ của STFT qua Mel scale 19
Trang 11Hình 3.9 Các bộ lọc tam giác 19
Hình 3.10 Kết quả sau khi trích xuất đặc trưng Log Mel Spectrogram 20
Hình 3.11 Cấu trúc mô hình 21
Hình 3.12 Cấu trúc mô hình một cách tổng quát 22
Hình 3.13.2 Loss của mô hình 23
Hình 3.14 Accuracy của mô hình 23
Hình 3.15 Confusion matrix của tập test 24
Hình 4.1 Công cụ STM32 Cube.AI 27
Hình 4.2 Thư viện AI dưới vi điều khiển STM32 27
Hình 4.3 Cấu trúc của mô hình được phân tích bằng công cụ STM32 Cube.AI 28
Hình 4.4 STM32 Cube.AI sau khi phân tích mô hình thành công 29
Hình 4.5 Cấu hình ADC trên vi điều khiển STM32 30
Hình 4.6 Cấu hình xung clock trên Vi điều khiển STM32F746 31
Hình 4.7 Cấu hình DMA trên vi điều khiển STM32 31
Hình 4.8 Trích đặc trưng Log MelSpectrogram bằng thư viện CMSIS 32
Hình 4.9 Quá trình debug xem giá trị kết quả của các thành phần aSpectrogram, data out, max output, max output ind, 33
Trang 12CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI
1.1 Tính cấp thiết của đề tài
Trong thời đại 4.0 kéo theo sự phát triển của rất nhiều lĩnh vực công nghệ khác nhau, nền khoa học công nghệ ngày ngay có sự phất triển vượt bậc, nổi bật điển hình là phát triển thành phố thông minh hay còn gọi là “Smart City” đang là xu hướng mà các thành phố lớn đều đang hướng đến Một trong những giải pháp hiện tại để phát triển thành phố thông minh đang rất được quan tâm đó là nghiên cứu, phát triển và ứng dụng trí tuệ nhân tạo ở tất cả các lĩnh vực trong đời sống
Để phát triển theo hướng đến xây dựng thành phố thông minh thì tòa nhà thông minh hay nhỏ hơn là ngôi nhà thông minh là một trong những mục tiêu dễ dàng tiếp cận nhất Hiện nay, các thiết bị có trong nhà đa số được điều khiển bằng các công tắc cơ (đèn, quạt, rèm cửa,…) hoặc các remote điều khiển (tivi, máy chiếu, điều hòa) Tuy nhiên, người dùng càng ngày càng có nhu cầu cao về việc điều khiển và giám sát các thiết bị này một cách thông minh hơn, có nhu cầu cao về trải nghiệm người dùng
1.2 Các giải pháp hiện tại
Hiện nay, các trợ lý ảo giám sát và trợ lý giọng nói cũng được nhiều hãng quan tâm và phát triển như Google Assistant, Alexa, Cortana … Tuy nhiên, các sản phẩm này hoạt động cần phụ thuộc vào internet net, có độ trễ nhất định, dữ liệu âm thanh trong gia đình có thể
bị rò rỉ, truyền ra ngoài không đảm bảo an toàn, riêng tư [1]
Trang 13Hình 1.1 Trợ lý ảo GoogleHome và Amazon Alexa Echo Dot3
Ngoài ra, những thiết bị này chỉ hướng đến một số đối tượng người dùng cụ thể, ngôn ngữ sử dụng chủ yếu là tiếng anh, vấn đề về bảo mật người dùng vẫn đang là nổi lo lắng khi sử dụng các thiết bị này
1.3 Đề xuất giải pháp
Với những lý do đó, nhóm đã quyết định thiết kế một hệ thống để điều khiển các thiết
bị điện trong gia đình bằng giọng nói, giúp điều khiển các thiết bị trong nhà một cách thông minh hơn, tăng trải nghiệm người dùng với mục tiêu không phá vỡ kết cấu, kiến trúc có sẵn; nhỏ gọn và bảo mật Đặc biệt là hệ thống vẫn có thể thực hiện được chức năng điều khiển của mình trong cả điều kiện không có kết nối internet
Để thực hiện được những mục tiêu trên, nhóm đề xuất thực hiện đề tài THIẾT KẾ MÔ HÌNH TRỢ LÝ GIỌNG NÓI ỨNG DỤNG EDGE AI ĐIỀU KHIỂN THIẾT BỊ ĐIỆN TRONG GIA ĐÌNH Đây là một công nghệ rất đang được quan tâm hiện nay, một trong những đặc điểm nỗi bật của công nghệ này là có thể dễ dàng thực thi các mô hình AI trên thiết bị nhúng ngay cả trong điều kiện không có kết nối internet, ngoài ra đây còn là công nghệ giúp hệ thống có tính nhỏ gọn, bảo mật, dễ dàng đồng bộ, phát triển và mở rộng
Trang 14Các bước để xây dựng hệ thống:
Ở đề tài này, nhóm sử dụng phương pháp phân loại âm thanh để nhận dạng các loại
âm thanh điều khiển, nhóm thực hiện xây dựng một mô hình nhận dạng sử dụng mạng nơ- ron tích chập Với mục tiêu độ chính xác nhận dạng của hệ thống phải trên 90%
Sau khi xây dựng thành công mô hình nhận dạng, nhóm tiếp tục nhúng mô hình đó xuống thiết bị nhúng và thực hiện quá trình thu nhận dữ liệu thực tế và tiến hành nhận dạng cục bộ
Cuối cùng, sau khi thực hiện nhận dạng thành công các từ khóa cục bộ trên thiết bị nhúng, nhóm tiếp tục sử dụng phương thức không dây hồng ngoại để thực hiện phần việc đồng bộ điều khiển
Hình 1.2 Các công cụ và công nghệ sử dụng trong hệ thống
Các công cụ để xây dựng hệ thống:
Xây dựng mô hình: ngôn ngữ Python, framework TensorFlow, framework Keras
Hệ thống nhúng: ngôn ngữ C, STM32 Cube.AI, STM32 CubeIDE
Trang 15Sơ đồ khối của hệ thống:
Hình 1.3 Sơ đồ khối tổng quát của hệ thống
Chức năng của từng khối:
Khối ngoại vi: Lấy dữ liệu âm thanh điều khiển từ người dùng microphone phục vụ cho việc nhận dạng điều khiển; đọc tín hiệu từ cảm biến
Khối xử lý trung tâm: Sử dụng vi điều khiển STM32, là nơi lưu mô hình nhận dạng
âm thanh, thực hiện quá trình nhận dạng
Khối đồng bộ điều khiển: Thực hiện lệnh từ khối điều khiển trung tâm và thực hiện lệnh tắt(mở) các thiết bị điện
1.4 Kết luận chương
Chương vừa rồi nhóm đã phân tích về tính cấp thiết của đề tài và nêu ra một số phương pháp khác nhau và so sánh giữa các phương pháp để lựa chọn ra phương pháp thực hiện cho hệ thống Biết được sơ đồ khối tổng quát của hệ thống, chức năng và thành phần của mỗi khối ở trong hệ thống
Đưa ra được mục tiêu cuối cùng để thực hiện hệ thống, các yêu cầu để đánh giá hệ thống, và các công cụ cũng như những công nghệ để thực hiện hệ thống Ở những chương tiếp theo sẽ là chi tiết những phần về cơ sơ lý thuyết và quá trình thực hiện của hệ thống được chia thành 3 chương như sau đây:
Xây dựng hệ thống
Xây dựng mô hình nhận dạng âm thanh
Triển khai mô hình nhận dạng lên thiết bị nhúng STM32
Trang 16CHƯƠNG 2 XÂY DỰNG HỆ THỐNG
2.1 Giới thiệu chương
Chương Ⅰ đã đưa ra sơ khối tổng quan của hệ thống, các yêu cầu cũng như là các tính
năng của hệ thống Để giải quyết những yêu cầu đó và xây dựng được một hệ thống có các tính năng như vậy thì chương này sẽ tiến hành chọn lựa linh kiện cho từng khối cũng như
là xây dựng nên một sơ đồ khối cụ thể cho toàn bộ hệ thống
2.2 Khối cảm biến
2.2.1 Microphone
Trên thị trường hiện nay có rất nhiều loại microphone như AGC MAX9814, ADMP401, SPH0645, MAX 9812L, với chất lượng và giá thành sản phẩm khác nhau Với tiêu chí là giá thành rẻ cũng như là độ chính xác tương đối, với cái giá thành đó thì nhóm đã chọn AGC Microphone MAX9841 cho hệ thống của mình Đây là một analog microphone có kích thước nhỏ gọn
Trang 172.3 Led thông báo trạng thái
Đèn led là đèn công nghệ sử dụng công nghệ LED là từ viết tắt của Light Emitting Diode Led cấu
tạo từ một khối bán dẫn loại P ghép với một khối bán dẫn loại N Nguyên lý hoạt động của LED dựa trên công nghệ bán dẫn Khối bán dẫn P khi ghép với bán dẫn N thì các lỗ trống này có xu hướng chuyển động khuếch tán sáng khối N Cùng lúc khối P lại nhận được thêm các điện tử âm
từ N chuyển sang Ở biên giới 2 bên mặt tiếp giáp một số điện tử bị lỗ trống thu hút Và khi chúng lại gần nhau có xu hướng kết hợp với nhau tạo thành nguyên tử trung hòa Quá trình này giải phóng năng lượng dưới dạng ánh sáng
Hình 2.2 Led đơn
Trang 182.4 Khối điều khiển trung tâm
Khối điều khiển trung tâm nhóm sẽ sử dụng vi điều khiển STM32 Hiện nay trên thị trường có rất nhiều dòng vi điều khiển STM32 có tài nguyên, bộ nhớ và tốc độ xử lí khác nhau
Hình 2.4 Các dòng vi điều khiển STM32
Trang 19Vì đề tài của nhóm là ứng dụng Edge AI, cụ thể là mô hình AI sẽ chạy trên vi điều khiển STM32, mà một hệ thống AI thường có mô hình rất lớn cũng như đòi hỏi khối lượng các phép tính toán rất cao nên vi điều khiển mà được chọn phải thỏa mãn được yêu cầu là tài nguyên phần cứng phải lớn để lưu được một mô hình AI, cũng như tốc độ xử lí phải cao để đưa ra kết quả nhận dạng ở một thời gian ngắn giúp hệ thống hoạt động thời gian thực, đồng thời vi điều khiển đó tương thích và được hỗ trợ bởi STM32 Cube.AI Các vi điều khiển hiện nay có thể chạy được một mô hình AI thường là có lõi ARM Cortex-M4 trở lên
Hình 2.5 Các dòng vi điều khiển STM32 hỗ trợ AI
Vì những yêu cầu đặt ra như vậy, nên nhóm đã quyết định chọn vi điều khiển STM32F746 lõi ARM Cortex-M7 có tài nguyên bộ nhớ lớn, tốc độ xử lý cao và hỗ trợ sử dụng công cụ SMT32 Cube.AI [4]
Trang 20Hình 2.6 Sơ đồ tổng quát về ARM Cortext-M7 Thông số kỹ thuật:
Lõi ARM 32 bit Cortex-M7
1 MB Flash
SRAM 320 KB
Tần số lên đến 216 MHz
Hình 2.7 Vi điều khiển STM32F746NG
Trang 212.5 Sơ đồ khối tổng thể của hệ thống
Sau khi tiến hành chọn linh kiện cho từng khối, nhóm đã tiến hành xây dựng sơ đồ khối tổng thể của hệ thống như hình (2.10) Hệ thống sẽ bao gồm một khối điều khiển trung tâm, một Microphone để thu thập tín hiệu âm thanh, khối relay để bật tắt các thiết bị và cuối cùng là led trạng thái để thông báo trạng thái của các thiết bị được điều khiển
Mô hình AI sau khi được huấn luyện thành công trên máy tính sẽ được nhúng và chạy trên vi điều khiển Ở đây nhóm sẽ dùng vi điều khiển STM32F746, vi điều khiển STM32F746 sẽ giao tiếp với các ngoại vi thông qua các chuẩn giao tiếp như GPIO, ADC,…
2.6 Tổng kết chương
Hình 2.8 Sơ đồ khối tổng thể của hệ thống
Chương 2 đã trình bày về phần cứng hệ thống , những thông số cụ thể và cách lựa chọn linh kiện phù hợp với từng khối, lựa chọn các linh kiện tỉ mĩ phù hợp với các yêu cầu và cũng như là tiêu chí của đề tài đã được trình bày trong chương này Một hệ thống với sơ đồ khối hoàn chỉnh có các linh kiện cụ thể, có nguyên tắc và liên kết giữa các khối trong hệ thống một cách rõ ràng là cơ sở cho việc thực hiện các bước để xây dựng nên một hệ thống hoàn chỉnh sau này
Trang 22CHƯƠNG 3 THIẾT LẬP MÔ HÌNH NHẬN DẠNG ÂM
THANH
3.1 Tổng quan về mạng nơ-ron tích chập
Tích chập là một khái niệm trong xử lý tín hiệu số, đây là một phép toán được sử dụng rộng rãi và phổ biến trong các mô hình Deep Learning Tích chập giữa tín hiệu đầu vào (Ví
dụ như là một ma trận hình ảnh, âm thanh) và các bộ lọc giúp trích xuất tự động các đặc trưng Tích chập thông dụng nhất là tích chập 2 chiều được áp dụng trên ma trận đầu vào
và ma trận bộ lọc 2 chiều Phép tích chập của một ma trận với một bộ lọc (receptive field) là một ma trận sẽ trả qua những bước sau:
Tính tích chập tại 1 điểm: Tại vị trí đầu tiên trên cùng của ma trận đầu vào ta sẽ lọc
ra một ma trận con có kích thước bằng với kích thước của bộ lọc Giá trị tương ứng trên là tích chập của với được tính như sau:
Tiến hành trượt dọc theo ma trận theo chiều từ trái qua phải, từ trên xuống dưới theo bước nhảy (stride) S ta sẽ tính được các giá trị tiếp theo Sau khi quá trình này kết thúc ta thu được trọn vẹn ma trận
Thông thường khi nói về Convolutional Neural Network (CNN) [5] chúng ta thường liên tưởng đến lĩnh vực xử lý hình ảnh (Computer Vision) do những tiến bộ vượt bậc mà kỹ thuật CNN đem lại trong lĩnh vực này Tuy nhiên, gần đây CNN cũng đang dần được nghiên cứu để áp dụng vào lĩnh vực xử lý ngôn ngữ tự nhiên (NLP)
Mặc dù, với các bài toán NLP thì việc sử dụng RNN [6] vẫn đem lại kết quả cao hơn
so với các kỹ thuật khác nhưng điểm hạn chế lớn nhất của RNN là phải mất nhiều thời gian
để huấn luyện mô hình (do phải huấn luyện từng từ một thay vì cả câu văn hay đoạn văn)
Do đó, các nhà nghiên cứu hi vọng có thể sử dụng CNN để giảm thời gian huấn luyện mà vẫn đạt kết quả tương tự như RNN
Trang 23Thông qua các phép tích chập, các đặc trưng chính từ ảnh được chiết xuất và truyền vào các lớp tích chập (convolution layers) Mỗi một lớp tích chập sẽ bao gồm nhiều đơn vị mà kết quả ở mỗi đơn vị là một phép biến đổi tích chập từ lớp trước đó thông qua phép nhân tích chập với bộ lọc
Thiết kế của một mạng nơ ron tích chập 2 chiều có dạng như sau:
Hình 3.1 Cấu trúc mạng CNN cơ bản
Trong đó:
Input: Lớp đầu vào (ma trận hình ảnh, âm tanh, ….)
Convolution: lớp tích chập với các kernel có kích thước hiệu chỉnh (1x1, 3x3, 5x5…)
ReLU: Lớp biến đổi thông qua hàm kích hoạt relu để kích hoạt tính tuyến tính
Pool: Lớp Pool này dùng cửa sở trượt quét qua toàn bộ mỗi lần trượt theo
một bước trượt (stride) cho trước Khác với lớp Convolutional, lớp Pooling không tính tích chập mà tiến hành lấy mẫu (subsampling)
Fully-Connected + softmax: Lớp tìm ra xác xuất của từng class đối với bài toán classification
Trang 243.2 Công cụ xây dựng mô hình
Hình 3.2 TensorFlow
Các hàm được dựng sẵn trong thư viện cho từng bài toán cho phép TensorFlow xây dựng được nhiều neural network Nó còn cho phép bạn tính toán song song trên nhiều máy tính khác nhau, thậm chí trên nhiều CPU, GPU trong cùng một máy hay tạo ra các đồ thị luồng dữ liệu để dựng nên các mô hình
Hoạt động của TensorFlow được chia thành 3 phần:
Tiền xử lý dữ liệu
Xây dựng mô hình
Huấn luyện và đánh giá mô hình
Trang 25TensorFlow cho phép các lập trình viên tạo ra dataflow graph, cấu trúc mô tả làm thế nào dữ liệu có thể di chuyển qua một graph, hay một series các node đang xử lý Mỗi node trong đồ thị đại diện một phép toán học, và mỗi kết nối giữa các node là một mảng dữ liệu
đa chiều, hay còn được gọi là tensor Các thư viện biến đổi có sẵn thông qua TensorFlow được viết bằng các binary C++ nên có tốc độ xử lý cao Ngôn ngữ Python cung cấp các high-level abstraction để cho phép thực hiện hiệu chỉnh
Lợi ích đầu tiên mà cũng dễ thấy nhưng quan trọng nhất mà TensorFlow cung cấp cho việc lập trình machine learning chính là tính chất trừu tượng Thay vì phải đối phó với những tình huống rườm rà từ việc thực hiện triển khai các thuật toán TensorFlow sẽ làm phần còn lại thay cho chúng ta Lợi ích thứ 2 là tốc độ xử lý cao do phân lớn được viết bằng ngôn ngữ C++
3.2.2 Keras
Keras thực sự là một high-level APIs cho việc xây dựng và huấn luyện các mô hình học sâu Keras giúp đưa ra các mô hình mẫu một cách nhanh chóng, giúp đưa ra các sản phẩm hoặc nghiên cứu với các thuật toán hiện đại Với TensorFlow 2.0, Keras đã được tích hợp một cách chặt chẽ hơn với nền tàng TensorFlow của Google Keras cung cấp các API một cách hợp lý và đơn giản, tối thiểu các thao tác cho người dùng, nó còn cùng cấp các phản hồi một cách rõ ràng đối với các lỗi người dùng Sử dụng dễ dàng tuy nhiên không làm tăng độ phức tạp cũng như giảm độ linh hoạt khi sử dụng bởi vì Keras được kết hợp với các hàm low-level của TensorFlow Tùy chỉnh chức năng của các hàm một cách linh hoạt
Hình 3.3 High-level APIs của TensorFlow