1. Trang chủ
  2. » Mẫu Slide

Xác Định lĩnh vực của Ý Định người dùng việt nam sử dụng mô hình học sâu

55 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xác Định Lĩnh Vực Của Ý Định Người Dùng Việt Nam Sử Dụng Mô Hình Học Sâu
Tác giả Đào Trọng Hiếu
Người hướng dẫn TS. Lương Thái Lê
Trường học Trường Đại Học Giao Thông Vận Tải
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 55
Dung lượng 2,55 MB
File đính kèm xac dinh y dinh cua nguoi viet.zip (2 MB)

Nội dung

Ngày nay với sự phát triển vượt bậc của công nghệ trong những năm gần đây chúng ta hàng ngày phải tiếp nhận một lượng lớn thông tin đến từ nhiều nguồn khác nhau. Từ mạng xã hội, những bài báo, blog, email, tin nhắn, ... tất cả đều sinh ra một khối lượng dữ liệu khổng lồ và các dữ liệu đó thể hiện ý định của người dùng. Chính vì vậy nhờ có trí tuệ nhân tạo ta có thể xác định được ý định người dùng và đưa ra một số chỉ dẫn đúng với mong muốn của người dùng. Nhận dạng ý định, còn thường được gọi là phân loại ý định, sử dụng công nghệ máy học và xử lí ngôn ngữ tự nhiên để liên kết dữ liệu văn bản với một ý định nhất định. Ví dụ : trong một bài đăng của của người dùng có một câu “Tôi muốn mua một căn nhà ở Long Biên Hà Nội rộng 500m2”, mô hình sẽ học từ dữ liệu người dùng đăng dựa vào các cụm từ chính, chẳng hạn như “một căn nhà” hoặc “Long Biên Hà Nội rộng 500m2” để phân lớp câu văn trên vào lớp “Bất Động Sản”. Do đó, nhận dạng ý định có thể được coi là quá trình phân loại văn bản viết dựa trên những gì người dùng mong muốn đạt được. Phân loại ý định là một yếu tố thay đổi cuộc chơi quan trọng đối với các doanh nghiệp, đặc biệt là liên quan đến trải nghiệm của khách hàng. Ví dụ, hộp trò chuyện là một nền tảng phổ biến sử dụng nhận dạng ý định cho các cuộc trò chuyện bán hàng, hỗ trợ khách hàng … Tự động hóa nhu cầu dịch vụ khách hàng thông qua phân loại ý định cho phép doanh nghiệp mở rộng quy mô và đáp ứng nhu cầu của khách hàng nhanh hơn. Với những thành công của mạng nơ ron trong xử lý ngôn ngữ tự nhiên, em muốn xây dựng một hệ thống sử dụng các mô hình trong Deep Learning vào bài toán xác định lĩnh vực của ý định người dùng Việt Nam. Đồ án bao gồm các phần được phân chương sau: Chương 1: Giới thiệu tổng quan đề tài Chương 2: Phương pháp học sâu với bài toán phân lớp văn bản Chương 3: Xây dựng mô hình học sâu cho bài toán xác định ý định của người dùng Việt Nam

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN TỐT NGHIỆP

ĐỀ TÀI

XÁC ĐỊNH LĨNH VỰC CỦA Ý ĐỊNH NGƯỜI DÙNG VIỆT

NAM SỬ DỤNG MÔ HÌNH HỌC SÂU

Giảng viên hướng dẫn : TS Lương Thái Lê Sinh viên thực hiện : Đào Trọng Hiếu

Hà Nội, 2023

Trang 2

KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN TỐT NGHIỆP

ĐỀ TÀI

XÁC ĐỊNH LĨNH VỰC CỦA Ý ĐỊNH NGƯỜI DÙNG VIỆT

NAM SỬ DỤNG MÔ HÌNH HỌC SÂU

Giảng viên hướng dẫn : TS Lương Thái Lê Sinh viên thực hiện : Đào Trọng Hiếu

Hà Nôi, 2023

Trang 3

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Hà Nội, ngày… tháng……2023

Giảng viên hướng dẫn

TS.Lương Thái Lê

Trang 4

Em xin chân thành gửi lời cảm ơn đến gia đình em, đặc biệt là mẹ đã luôn ủng hộ những lựa chọn của em Đồng thời em xin cảm ơn những ý kiến đóng góp bổ ích của thầy cô, bạn bè để em hoàn thành đồ án tốt nghiệp này Dù đã có nhiều cố gắng để hoàn thiện nhưng đồ án tốt nghiệp của em không tránh khỏi những thiếu sót, em mong nhận được những lời nhận xét và chia sẻ quý báu của thầy cô để đề tài được hoàn chỉnh hơn

Em xin chân thành cảm ơn!

Hà Nội, tháng 06 năm 2023

Sinh viên

Đào Trọng Hiếu

Trang 5

MỤC LỤC

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 1

LỜI CẢM ƠN 2

MỤC LỤC 3

DANH MỤC TỪ VIẾT TẮT 5

DANH MỤC BẢNG BIỂU 6

DANH MỤC HÌNH ẢNH 7

MỞ ĐẦU 8

CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI 9

1.1 Lựa chọn đề tài nghiên cứu 9

1.2 Nội dung và phạm vi đề tài 10

1.2 Ý nghĩa lý luận và ý nghĩa thực tiễn của đề tài 10

1.3 Kết quả dự kiến 10

1.4 Tổng quan về xác định lĩnh vực ý định người dùng 10

1.5 Công cụ sử dụng nghiên cứu 11

1.5.1 Docker 11

1.5.2 Microsoft Azure 13

1.5.3 Selenium 17

1.5.4 FLASK 18

1.5.5 Google Colab 19

CHƯƠNG 2 PHƯƠNG PHÁP HỌC SÂU VỚI BÀI TOÁN PHÂN LỚP VĂN BẢN 20

2.1 Giới thiệu về học sâu 20

2.1.1 Giới thiệu chung 20

2.1.2 Mạng nơron nhân tạo 20

2.1.3 Các thuật toán huấn luyện 22

2.1.4 Một số mô hình mạng nơron điển hình 23

2.2 Mạng nơron hồi quy RNN 26

Trang 6

2.3 Mạng Long Short Term Memory LSTM 28

2.3 Mạng nơron tích chập CONV 33

2.4 Thư viện Tensorflow 35

CHƯƠNG 3 XÂY DỰNG MÔ HÌNH HỌC SÂU CHO BÀI TOÁN XÁC ĐỊNH Ý ĐỊNH NGƯỜI DÙNG VIỆT NAM 37

3.1 Nhắc lại bài toán 37

3.2 Các lớp dữ liệu 37

3.3 Mô hình đề xuất 39

3.4 Chuẩn bị dữ liệu 39

3.4.1 Thu thập dữ liệu 39

3.4.2 Làm sạch dữ liệu 40

3.4.2 Tăng cường dữ liệu 41

3.4.3 Tiền xử lí dữ liệu 42

3.5 Trích xuất đặc trưng 43

3.5.1 Đặc trưng về ngữ nghĩa và từ loại 43

3.5.2 Đặc trưng của từ mức ký tự 43

3.6 Xây dựng mô hình học sâu 44

3.7 Kết quả thực nghiệm 48

3.7.1 Độ đo đánh giá 48

3.7.2 Kết quả mô hình 49

3.8 Xây dựng Website tương tác với mô hình 50

3.9 Đóng gói sản phẩm bằng docker 50

3.10 Đưa sản phẩm lên Azure Cloud 51

KẾT LUẬN 52

TÀI LIỆU THAM KHẢO 53

Trang 7

DANH MỤC TỪ VIẾT TẮT

1 Bi-LSTM Bi-directional Long-Short

Term Memory

Bộ nhớ dài ngắn 2 chiều

2 CNN ConvolutionalNeural Network Mạng nơron tích chập

5 NLP Natural Language Processing Xử lí ngôn ngữ tự nhiên

6 RNN Recurrent Nerual NetWork Mạng nơron hồi quy

Programming Interface

Giao diện lập trình ứng

dụng

Trang 8

DANH MỤC BẢNG BIỂU

Bảng 2 1 Một số hàm kích hoạt thường gặp 22

Bảng 3 1 Ví dụ miêu tả dự định , ý định 37

Bảng 3 2 Làm sạch dữ liệu với RE 40

Bảng 3 3 Tăng cường dữ liệu với nlaug 42

Bảng 3 4 Phân đoạn từ sử dụng VnCoreNLP 43

Bảng 3 5 Danh sách các tham số của mô hình LSTM 45

Bảng 3 6 Danh sách các tham số của mô hình CONV1D 47

Bảng 3 7 Bảng so sánh thực nghiệm giữa 2 mô hình LSTM và CONV1D 49

Trang 9

DANH MỤC HÌNH ẢNH

Hình 1 1 Kiến trúc docker 12

Hình 1 2 Microsoft Azure 14

Hình 1 3 Thư viện Flask 18

Hình 1 4 Cấu hình phần cứng do Google Colab cung cấp 19

Hình 2 1 Mạng perceptron đơn 21

Hình 2 2 Quá trình xử lí thông tin trong mạng RNN 27

Hình 2 3 RNN phụ thuộc short-term 28

Hình 2 4 RNN phụ thuộc long-term 29

Hình 2 5 Các moudule lặp của mạng RNN chứa một layer 29

Hình 2 6 Các module lặp của mạng LSTM chứa bốn layer 30

Hình 2 7 Cell state của LSTM giống như một băng truyền 30

Hình 2 8 Cổng trạng thái LSTM 31

Hình 2 9 LSTM focus f 31

Hình 2 10 LSTM focus i 32

Hình 2 11 LSTM focus c 32

Hình 2 12 LSTM focus o 33

Hình 2 13 Trích xuất đặc trưng mức ký tự từ “Học_sinh” sử dụng CNN 35

Hình 2 14 Thư viện TensorFlow 35

Hình 3 2 Mô hình hóa quy trình đồ án tốt nghiệp 39

Hình 3 3 Thống kê số lượng của mỗi lớp ý định 41

Hình 3 4 Kiến trúc mô hình mạng học sâu với LSTM 44

Hình 3 5 Kiến trúc mô hình học sâu với CONV1D 46

Hình 3 6 Mô tả các độ đo chính xác , độ hồi tưởng 49

Hình 3 7 Website dự đoán ý định người dùng Việt Nam 50

Hình 3 8 Cấu hình Dockerfile 50

Hình 3 9 Giao diện Website khi đưa lên môi trường Azure Cloud 51

Trang 10

MỞ ĐẦU

Ngày nay với sự phát triển vượt bậc của công nghệ trong những năm gần đây chúng

ta hàng ngày phải tiếp nhận một lượng lớn thông tin đến từ nhiều nguồn khác nhau Từ mạng xã hội, những bài báo, blog, email, tin nhắn, tất cả đều sinh ra một khối lượng

dữ liệu khổng lồ và các dữ liệu đó thể hiện ý định của người dùng Chính vì vậy nhờ có trí tuệ nhân tạo ta có thể xác định được ý định người dùng và đưa ra một số chỉ dẫn đúng với mong muốn của người dùng

Nhận dạng ý định, còn thường được gọi là phân loại ý định, sử dụng công nghệ máy học và xử lí ngôn ngữ tự nhiên để liên kết dữ liệu văn bản với một ý định nhất định Ví dụ : trong một bài đăng của của người dùng có một câu “Tôi muốn mua một căn nhà ở Long Biên

Hà Nội rộng 500m2”, mô hình sẽ học từ dữ liệu người dùng đăng dựa vào các cụm từ chính, chẳng hạn như “một căn nhà” hoặc “Long Biên Hà Nội rộng 500m2” để phân lớp câu văn trên vào lớp “Bất Động Sản” Do đó, nhận dạng ý định có thể được coi là quá trình phân loại văn bản viết dựa trên những gì người dùng mong muốn đạt được

Phân loại ý định là một yếu tố thay đổi cuộc chơi quan trọng đối với các doanh nghiệp, đặc biệt là liên quan đến trải nghiệm của khách hàng Ví dụ, hộp trò chuyện là một nền tảng phổ biến sử dụng nhận dạng ý định cho các cuộc trò chuyện bán hàng, hỗ trợ khách hàng …

Tự động hóa nhu cầu dịch vụ khách hàng thông qua phân loại ý định cho phép doanh nghiệp

mở rộng quy mô và đáp ứng nhu cầu của khách hàng nhanh hơn

Với những thành công của mạng nơ ron trong xử lý ngôn ngữ tự nhiên, em muốn xây dựng một hệ thống sử dụng các mô hình trong Deep Learning vào bài toán xác định lĩnh vực của ý định người dùng Việt Nam

Đồ án bao gồm các phần được phân chương sau:

Chương 1: Giới thiệu tổng quan đề tài

Chương 2: Phương pháp học sâu với bài toán phân lớp văn bản

Chương 3: Xây dựng mô hình học sâu cho bài toán xác định ý định của người

dùng Việt Nam

Trang 11

CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI

1.1 Lựa chọn đề tài nghiên cứu

Các công nghệ liên tục phát triển và mọi người đang dựa vào chúng ngày càng nhiều cho các tác vụ hàng ngày, điều đó có nghĩa là khối lượng và tính khả dụng của dữ liệu văn bản tiếp tục tăng theo cấp số nhân Với sự gia tăng của các dịch vụ trực tuyến, các công ty rất khó theo kịp tốc độ thu thập dữ liệu chất lượng Các mô hình nhận dạng

ý định đã được phát triển để tạo điều kiện đánh dấu và phân loại sự rộng lớn của dữ liệu văn bản

Nhận dạng ý định là một thuật ngữ được sử dụng trong xử lý ngôn ngữ tự nhiên (NLP) để mô tả mục đích hoặc ý định đằng sau một biểu hiện ngôn ngữ, chẳng hạn như một lời khẳng định hoặc một câu hỏi Khi có liên quan đến dữ liệu, nhận dạng ý định đề cập đến ý định đằng sau một truy vấn hoặc hành động được thực hiện bằng dữ liệu cụ thể Ví dụ: người dùng tìm kiếm internet với đối tượng tìm kiếm thông tin về dịch vụ trên trang web hoặc muốn mua dịch vụ trực tuyến, v.v phát hiện ý định đằng sau các biểu thức ngôn ngữ là một nhiệm vụ chính trong NLP và có thể được sử dụng để cải thiện Phản ứng mà các hệ thống tự động cung cấp cho con người [1]

Các mô hình xử lý ngôn ngữ tự nhiên có thể phát hiện ý định đằng sau một biểu thức ngôn ngữ bằng cách tự động học các mẫu trong bộ dữ liệu đào tạo Điều này đặc biệt hữu ích cho các ứng dụng trò chuyện, chẳng hạn như trợ lý ảo, chatbot, v.v., nơi cần phải hiểu ý định của người dùng để có thể đáp ứng theo nhu cầu của họ Sau khi tìm hiểu kĩ lưỡng em quyết định lựa chọn “Xác định lĩnh vực của ý định người dùng Việt Nam sử dụng mô hình học sâu” làm đồ án tốt nghiệp với những lí do sau:

- Đề tài là sự tính lũy kiến thức em học được từ trong suốt thời gian học được các

kỳ học trước như : Chuyên đề khoa học máy tính, Trí tuệ nhân tạo, Lập trình Web, Phân tích thiết kế hệ thống,…

- Dự án với mục tiêu sử dụng mô hình LSTM, CONV1D (một kiến trúc mô hình học sâu sử dụng phổ biến cho bài toán phân lớp văn bản)

- Mang tính thực tiễn, ứng dụng cao cho các doanh nghiệp muốn khai thác các khía cạnh của khách hàng, đưa ra bài toán kinh doanh hợp lí

Vì vậy, em lựa chọn đề tài “Xác định lĩnh vực của ý định người dùng Việt Nam sử dụng mô hình học sâu” làm đồ án tốt nghiệp

Trang 12

1.2 Nội dung và phạm vi đề tài

*Nội dung :

- Khảo sát và tìm hiểu nguồn dữ liệu

- Thu thập dữ liệu

- Làm sạch dữ liệu và đánh nhãn

- Xây dựng mô hình học sâu

- Phát triển API và Deploy lên Cloud

*Phạm vi :

- Xác định lĩnh vực của ý định người dùng Việt Nam

1.2 Ý nghĩa lý luận và ý nghĩa thực tiễn của đề tài

- Đề tài đóng góp vai trò quan trọng trong việc nâng cao kiến thức và dần tiếp cận tới việc xây dựng một ứng dụng thực tế cao, giúp ginh viên có thêm những kiến thức, kinh nghiệm, trải nghiệm trong lĩnh vực AI

- Nâng cao khả năng tự học

- Nâng cao khả năng làm việc độc lập

- Củng cố và nâng cao, tiếp thu kiến thức mới, công nghệ mới

tô bảy chỗ vào tuần tới” hoặc “Chúng tôi đang tìm một căn hộ gần trung tâm thành phố” trên một diễn đàn thảo luận hoặc trên tường Facebook của chính họ Những bài đăng đó được gọi là “bài đăng ý định” bởi vì chúng mang ý định của người dùng để làm điều gì đó trong tương lai gần Các bài đăng hoặc tin nhắn có ý định rõ ràng là một nguồn kiến thức có giá trị cho các doanh nghiệp Nếu doanh nghiệp biết và hiểu chính xác người dùng đang định làm gì, họ có thể dễ dàng tìm được một lượng lớn khách hàng tiềm năng phù hợp với lĩnh vực kinh doanh của mình Tuy nhiên, câu hỏi thách thức nhất là làm thế nào chúng ta có thể xử lý, phân tích và hiểu những ý định đó một cách tự động?

Trang 13

Nắm bắt, phân tích và hiểu các bài đăng về ý định trên phương tiện truyền thông

xã hội trực tuyến là một quy trình gồm bốn giai đoạn: thu thập nguồn dữ liệu, lọc ý định của người dùng, xác định miền ý định, phân tích và trích xuất ý định

Trong đồ án tốt nghiệp này, em chỉ phân loại các bài viết về ý định vào một trong

13 lĩnh vực chính như “thiết bị điện tử”, ”thời trang”, ”phụ kiện”, ”tài chính”, ”dịch vụ

ăn uống”, ”trang trí nội thất”, ”tạp hóa”, ”du lịch”, ”khách sạn”, ”tài sản”, ”việc làm”,

”giáo dục”, ”giao thông”, ”sức khỏe và sắc đẹp”, ”thể thao và giải trí”, ”vật nuôi và cây trồng”, ”khác”

Em đã tiến hành thử nghiệm với dữ liệu thược được thu thập tự động từ các diễn đàn thảo luận và các mạng xã hội nổi tiếng Em đã xây dựng một bộ dữ liệu có nhãn kích thước trung bình gồm các bài viết bằng Tiếng Việt để đánh giá Các mô hình phân loại được đào tạo bằng cách dử dụng LSTM và CONV1D

1.5 Công cụ sử dụng nghiên cứu

Trang 14

a) Một sô khái niệm

Hình 1 1 Kiến trúc docker

- Docker Client: là cách tương tác với docker thông qua command trong terminal

Docker Client sẽ sử dụng API gửi lệnh tới Docker Daemon

- Docker Daemon: là server Docker cho yêu cầu từ Docker API Nó quản lý

images, containers, networks và volume

- Docker Volumes: là cách tốt nhất để lưu trữ dữ liệu liên tục cho việc sử dụng

và tạo apps

- Docker Registry: là nơi lưu trữ riêng của Docker Images Images được push

vào registry và client sẽ pull images từ registry Có thể sử dụng registry của riêng bạn hoặc registry của nhà cung cấp như : AWS, Google Cloud, Microsoft Azure

- Docker Hub: là Registry lớn nhất của Docker Images ( mặc định) Có thể tìm

thấy images và lưu trữ images của riêng bạn trên Docker Hub ( miễn phí)

- Docker Repository: là tập hợp các Docker Images cùng tên nhưng khác tags

VD: golang:1.11-alpine

- Docker Networking: cho phép kết nối các container lại với nhau Kết nối này

có thể trên 1 host hoặc nhiều host

- Docker Compose: là công cụ cho phép run app với nhiều Docker containers 1

cách dễ dàng hơn Docker Compose cho phép bạn config các command trong file docker-compose.yml để sử dụng lại Có sẵn khi cài Docker

- Docker Swarm: để phối hợp triển khai container

- Docker Services: là các containers trong production 1 service chỉ run 1 image

nhưng nó mã hoá cách thức để run image — sử dụng port nào, bao nhiêu bản sao container run để service có hiệu năng cần thiết và ngay lập tức

Trang 15

b) Dockerfile

Dockerfile là file config cho Docker để build ra image Nó dùng một image cơ bản

để xây dựng lớp image ban đầu Một số image cơ bản: python, unbutu và alpine Sau đó nếu có các lớp bổ sung thì nó được xếp chồng lên lớp cơ bản Cuối cùng một lớp mỏng

có thể được xếp chồng lên nhau trên các lớp khác trước đó.[6]

Các config :

- FROM — chỉ định image gốc: python, unbutu, alpine…

- LABEL — cung cấp metadata cho image Có thể sử dụng để add thông tin

maintainer Để xem các label của images, dùng lệnh docker inspect

- ENV — thiết lập một biến môi trường

- RUN — Có thể tạo một lệnh khi build image Được sử dụng để cài đặt các

package vào container

- COPY — Sao chép các file và thư mục vào container

- ADD — Sao chép các file và thư mục vào container

- CMD — Cung cấp một lệnh và đối số cho container thực thi Các tham số có

thể được ghi đè và chỉ có một CMD

- WORKDIR — Thiết lập thư mục đang làm việc cho các chỉ thị khác như:

RUN, CMD, ENTRYPOINT, COPY, ADD,…

- ARG — Định nghĩa giá trị biến được dùng trong lúc build image

- ENTRYPOINT — cung cấp lệnh và đối số cho một container thực thi

- EXPOSE — khai báo port lắng nghe của image.- VOLUME — tạo một điểm

gắn thư mục để truy cập và lưu trữ data

1.5.2 Microsoft Azure

Trang 16

a) Microsoft Azure là gì?

Hình 1 2 Microsoft Azure

Azure là một nền tảng điện toán đám mây được Microsoft ra mắt vào năm 2010

Các công cụ của Azure hỗ trợ người dùng lưu trữ dữ liệu không giới hạn, phát triển ứng

dụng, quản lý dịch vụ trên internet mà không cần tới bộ nhớ và phần cứng máy tính cá nhân Mọi hoạt động đều thực hiện và xử lý thông qua trung tâm dữ liệu của Microsoft.[7] Tại Mỹ, có tới 90% công ty lớn nhất đất nước thuộc danh sách Fortune 500 đang sử dụng Microsoft Azure để thúc đẩy hoạt động kinh doanh Các doanh nghiệp có thể tận dụng một loạt công cụ để nhanh chóng xây dựng, triển khai, quản lý các ứng dụng vận hành

So với các nền tảng đám mây khác, Azure mở rộng hơn, bảo mật hơn và mạnh mẽ hơn:

- Kết hợp 3 dạng mô hình đám mây là IaaS (Cơ sở hạ tầng dưới dạng dịch vụ), PaaS (Nền tảng dưới dạng dịch vụ), SaaS (Phần mềm dưới dạng dịch vụ)

- Linh hoạt, có thể di chuyển các tài các tài nguyên máy tính khi cần thiết

- Nền tảng mở, hỗ trợ hầu hết mọi hệ điều hành, mọi ngôn ngữ lập trình, mọi công

cụ

- Đáng tin cậy, SLA (cam kết chất lượng dịch vụ) đạt 99,95% và hỗ trợ 24/7

- Khi được cấp quyền truy cập, người dùng có thể khai thác, sử dụng các dữ liệu

và dịch vụ đã đưa lên Azure từ mọi khu vực trên thế giới

Các tính năng nổi bật của Azure:

Trang 17

- Sao lưu và khôi phục sau thảm họa

- Lưu trữ, phát triển ứng dụng web và thiết bị di động Quản lý bản vá tự động, AutoScale

- Active Directory: Tạo khả năng tiếp cận toàn cầu, quản lý tập trung, nhất quán

và bảo mật mạnh mẽ

- Tính năng Azure IoT Hub giúp đổi mới các giải pháp công nghiệp chuyển đổi số

b) Những lợi ích tuyệt vời khi sử dụng Azure

Microsoft Azure cung cấp một loạt các dịch vụ hữu ích như máy ảo (Virtual Machines), cơ sở dữ liệu SQL[7], dịch vụ miền, dịch vụ ứng dụng, dịch vụ nhóm Visual Studio và lưu trữ

Hiện nay, có nhiều doanh nghiệp không muốn làm việc và lưu trữ dữ liệu trên điện toán đám mây vì lo ngại về rủi ro an ninh mạng, SAL và các sự cố tiềm ẩn Tuy nhiên với những ưu điểm về tốc độ và bảo mật của Azure, những vấn đề này sẽ chẳng còn hiện hữu

Azure hỗ trợ triển khai, quản lý các giải pháp CNTT hiện tại của doanh nghiệp; đồng thời cung cấp thêm nhiều giải pháp tùy chỉnh khác để giúp các công ty đạt được mục tiêu kinh doanh tốt nhất:

- Phát triển ứng dụng

- Hiện đại hóa các ứng dụng web

- Cung cấp Kubernetes không máy chủ, trải nghiệm CI/CD cũng như bảo mật và quản trị cấp doanh nghiệp

- Di chuyển dữ liệu qua đám mây

- Di chuyển Windows Server và SQL Server

- Di chuyển cơ sở dữ liệu nguồn mở và Linux

- SAP: Sử dụng máy ảo Azure chạy SAP HANA lớn nhất thế giới Có thể chuyển hàng trăm terabyte sang SAP chỉ trong vòng 1 ngày Giúp tăng dung lượng và giảm chi phí hoạt động thông qua việc ngừng hoạt động của các máy chủ vật lý

- Dữ liệu, phân tích và AI

- Di chuyển kho dữ liệu sang Azure

- Kết hợp cơ sở hạ tầng và đám mây

- Azure Virtual Desktop (Máy ảo)

- Azure hỗ trợ các công nghệ mã nguồn mở, vì vậy người dùng có thể sao lưu mọi loại ngôn ngữ trên mọi hệ điều hành, tại bất kỳ vị trí nào trên thế giới

- Người dùng có thể sử dụng nhiều công cụ quen thuộc như Visual Studio, ASP.NET và các ngôn ngữ lập trình như Visual Basic, C ++, C #,… để phát triển các ứng dụng doanh nghiệp thật hiệu quả

Trang 18

- Azure mang lại năng suất không giới hạn, cung cấp các dịch vụ lưu trữ linh hoạt,

an toàn, bảo mật và hiệu quả trên đám mây

- Các ứng dụng luôn hoạt động dễ dàng với quy mô lên đến 10 triệu người dùng Chúng có thể được tạo mà không cần mã hóa bổ sung

- Azure tạo nền tảng nhất quán đáng tin cậy giữa đám mây tại chỗ và đám mây công cộng Đồng thời cung cấp nhiều loại kết nối hỗn hợp bao gồm mạng riêng ảo (VPN), bộ nhớ đệm, mạng phân phối nội dung (CDN) và kết nối ExpressRoute để cải thiện khả năng sử dụng và hiệu suất

- Azure cung cấp các dịch vụ dữ liệu SQL, NoSQL, đồng thời hỗ trợ khai thác, đào sâu hơn vào dữ liệu để cải thiện quy trình và tăng trưởng kinh doanh nhanh chóng Đây là nền tảng đám mây duy nhất cung cấp các công nghệ của Blockchain dưới dạng Dịch vụ (BaaS), Máy học, Bots và API

- Nền tảng đám mây của Microsoft hỗ trợ các giao thức Internet và các tiêu chuẩn

mở như XML, SOAP, REST và HTTP Có một bộ phát triển phần mềm cho Java, PHP và Ruby có sẵn cho các ứng dụng được viết bằng các công cụ Azure

- Nền tảng của Azure luôn bảo mật và bảo vệ quyền riêng tư Sự phát triển của Microsoft mang lại mức độ tin cậy cao và đảm bảo tính minh bạch cũng như vòng đời SDL

- Azure được đánh giá là cung cấp phạm vi tuân thủ tốt nhất trong số hơn 50 dịch

vụ tuân thủ và là nền tảng đám mây đáng tin cậy nhất của các tổ chức chính phủ Hoa Kỳ

- Ngoài ra, đây là nền tảng đầu tiên áp dụng tiêu chuẩn quốc tế mới về quyền riêng

tư trên Đám mây, ISO 27018 Do đó, Microsoft đảm bảo tốt nhất về mặt an toàn cho tất cả các hoạt động và dữ liệu trên Azure Cloud

Trang 19

1.5.3 Selenium

Selenium là một bộ công cụ kiểm thử tự động open source, dành cho các ứng dụng web, hỗ trợ hoạt động trên nhiều trình duyệt và nền tảng khác nhau như Windows, Mac, Linus… Với Selenium, có thể viết các testscript bằng các ngôn ngữ lập trình khác nhau như Java, PHP, C#, Ruby hay Python hay thậm chí là Perl…[8]

Selenium được sử dụng để automate các thao tác với trình duyệt, hay dễ hiểu hơn

là nó giúp giả lập lại các tương tác trên trình duyệt như một người dùng thực sự Ví dụ bạn có thể lập trình để tự động bật trình duyệt, open một link, input dữ liệu, hay get infor page, upload, download dữ liệu từ trên web page[8] Với selenium bạn có thể làm đc rất nhiều thứ Hơn thế nữa, bạn có thể sử dụng, tùy biến để tận dụng tối đa sức mạnh của

nó Ngoài mục đích sử dụng trong kiểm thử, bạn có thể tự xây dựng một project để automate những công việc nhàm chán

Selenium là một khái niệm chung về một bộ phần mềm được sử dụng trong automation, mỗi loại trong đó đáp ứng một yêu cầu testing khác nhau Về cơ bản thì Selenium có 4 thành phần:

- Selenium IDE: Selenium Integreted Development Environment (IDE), là một

plug-in trên trình duyệt Fire-Fox, ta có thể sử dụng để record và play back lại các thao tác đó theo một quy trình hay một test case nào đó

- Selenium RC: Selenium Remote Control (RC), Selenium server khởi chạy và

tương tác với trình duyệt web

- WebDriver: Selenium WebDriver gửi lệnh khởi chạy và tương tác trực tiếp tới

các trình duyệt mà không cần thông qua một server như Selenium RC

- Selenium Grid: Selenium Hub dùng để khởi chay nhiều các test thông qua các

máy và các trình duyệt khác nhau tại cùng một thời điểm

Năm 2008, Selenium team đã quyết định gộp Selenium RC và WebDriver để tạo

ra Selenium 2 với nhiều tính năng mạnh mẽ hơn, mà hiện nay phần lớn các project Selenium đều sử dụng

Ưu điểm:

- Dễ dàng cài đặt và sử dụng

- Không yêu cầu người dùng phải có kỹ năng lập trình, chỉ cần bạn có hiểu biết một chút về HTML và DOM là đã có thể sử dụng được tool rồi

- Có thể export các test đã tạo để sử dụng trong Webdriver hoặc Selenium RC

- Có cung cấp chức năng để bạn có thể report kết quả hoặc các hỗ trợ khi sử dụng

- Bạn có thể sử dụng tích hợp với các extension khác nữa

Trong đồ án tốt nghiệp em có sử dụng Selenium để crawl dữ liệu ý định người dùng từ nhiều nguồn khác nhau Ví dụ: webtretho.com/, facebook.com/, chotot.com…

Trang 20

1.5.4 FLASK

Hình 1 3 Thư viện Flask

Flask là một Web Framework rất nhẹ của Python, dễ dàng giúp người mới bắt đầu học Python có thể tạo ra website nhỏ Flask cũng dễ mở rộng để xây dựng các ứng dụng web phức tạp.[9]

Flask có nền tảng là Werkzeug và Jinja2 và nó đã trở thành một trong những Web Framework phổ biến nhất của Python

Flask cung cấp cho các lập trình viên khả năng tùy biến khi phát triển ứng dụng web, nó cung cấp cho bạn các công cụ, thư viện và cơ chế cho phép bạn xây dựng một ứng dụng web

Ứng dụng web có thể là blog, trang web thương mại hoặc một số trang web khác,

nó vẫn cho phép các lập trình viên cơ hội sử dụng một số tiện ích mở rộng để thêm nhiều chức năng hơn cho ứng dụng web

Để ứng dụng có thể tương tác được với mô hình sau khi được huấn luyện thì em cần chuẩn bị một dịch vụ ứng dụng Website để tương tác với model Sau khi chọn lựa

kĩ lưỡng em quyết định sẽ sử dụng Flask của python với những lý do sau:

- Tốc độ

- Hỗ trợ cho NoQuery

- Độ phức tạp tối thiểu

- Chủ nghĩa tối giản tuyệt đối

- Không có ORM, dễ dàng kết nối với tiện ích mở rộng

- Trình gỡ lỗi được nhúng trong trình duyệt

- Mã ngắn và đơn giản trong số các bộ xương Python khác

Trang 21

1.5.5 Google Colab

Colaboratory hay còn gọi là Google Colab, là một sản phẩm từ Google Research,

nó cho phép chạy các dòng code python thông qua trình duyệt, đặc biệt phù hợp với Data analysis, machine learning và giáo dục Colab không cần yêu cầu cài đặt hay cấu hình máy tính, mọi thứ có thể chạy thông qua trình duyệt, bạn có thể sử dụng tài nguyên máy tính từ CPU tốc độ cao và cả GPUs và cả TPUs đều được cung cấp cho bạn Colab cung cấp nhiều loại GPU, thường là Nvidia K80s, T4s, P4s and P100s, tuy nhiên người dùng không thể chọn loại GPU trong Colab, GPU trong Colab thay đổi theo thời gian Vì là dịch vụ miễn phí, nên Colab sẽ có những thứ tự ưu tiên trong việc sử dụng tài nguyên hệ thống, cũng như giới hạn thời gian sử dụng, thời gian sử dụng tối đa lên tới 12 giờ.[10]

Hình 1 4 Cấu hình phần cứng do Google Colab cung cấp

Trang 22

CHƯƠNG 2 PHƯƠNG PHÁP HỌC SÂU VỚI BÀI

TOÁN PHÂN LỚP VĂN BẢN

2.1 Giới thiệu về học sâu

2.1.1 Giới thiệu chung

Học sâu (Deep Learning) là phạm trù nhỏ của học máy (Machine Learning - ML) dựa trên việc sử dụng mạng nơron và một tập hợp các thuật toán để mô hình hoá dữ liệu ở các mức trừu tượng khác nhau, qua đó giải quyết được nhiều bài toán mà các mô hình học không sâu truyền thống khó có thể giải quyết được như thị giác máy tính, nhận diện giọng nói, xử lý ngôn ngữ tự nhiên, nhận dạng âm thanh ngôn ngữ và tin sinh học Các mô hình học sâu có thể đạt được độ chính xác cao, đôi khi vượt quá hiệu suất của con người Các mô hình được huấn luyện bằng cách sử dụng một bộ dữ liệu có nhãn

và các cấu trúc mạng thần kinh có nhiều lớp Các mô hình học sâu không chỉ có khả năng mở rộng mạng nơron mà còn có cả tính năng học tập – khai thác các đặc trưng tự động từ dữ liệu thô, nên nó đòi hỏi số lượng lớn dữ liệu có nhãn và sức mạnh tính toán đáng kể

Kiến trúc cơ bản của học sâu là mạng nơron nhân tạo và có rất nhiều biến thể từ chúng, hầu hết là các nhánh sinh ra từ kiến trúc ban đầu như: mang nơron sâu (Deep Neural Network), mạng niềm tin sâu (Deep Belief Network), Mạng nơron tích chập (Convolutional neural networks - CNN), mạng niềm tin sâu tích chập (Convolutional Deep Belief Network), mạng nơron lưu trữ và truy xuất bộ nhớ lớn (Large Memory Storage And Retrieval Neural Network), các máy Deep Boltzmann,…

2.1.2 Mạng nơron nhân tạo

Mạng nơron nhân tạo là một mô hình toán học được xây dựng để mô phỏng lại kiến trúc và hành vi của nơron sinh học trong não người Nó là một hệ thống các nơron nhân tạo nối với nhau thành các lớp và xử lý thông tin bằng cách truyền theo các kết nối giữa các nơron

Để dễ dàng giải thích các thành phần của mạng nơron, tôi sẽ lấy ví dụ về một mạng nơron đơn giản là mạng perceptron đơn (xem Hình 2.1) do Rosenblatt đưa ra vào năm

1957 Kiến trúc và hành vi của perceptron rất giống với nơron sinh học và thường được coi là dạng cơ bản nhất của mạng nơron Các loại mạng nơron khác đã được phát triển dựa trên perceptron, và chúng vẫn đang tiếp tục phát triển cho tới hiện nay [2]

Trang 23

và một hàm phi tuyến ƒ, hoạt động như một bộ phân lớp nhị phân với đầu vào là một vectơ đặc trưng [x x x1, 2, 3] và đầu ra là xác suất p của một sự kiện nhất định

b) Trọng số

Mỗi đầu vào trong vectơ đặc trưng được gán với một trọng số tương đối (w) thể hiện ảnh hưởng của nó đối với hàm tính tổng Trong số các đầu vào, một số cái có ảnh hưởng lớn hơn sẽ có trọng số lớn hơn, ngược lại thì trọng số sẽ nhỏ hơn Độ lệch w0 b

cũng được tính vào tổng như một trọng số Giá trị tổng s được tính như sau:

Trang 24

2.1.3 Các thuật toán huấn luyện

Như đã đề cập, bên cạnh mạng nơron, một mô hình học sâu cần có các thuật toán

để huấn luyện mạng nơron đó

b) Lan truyền ngược và hàm tối ưu hoá

Sai số 𝐽(w) là một hàm với đầu vào là các tham số nội mô hình (các trọng số và

độ lệch) Để dự đoán chính xác, ta cần giảm thiểu sai số, tức tìm w để 𝐽(w) đạt giá trị cực tiểu Trong mạng nơron, điều này được thực hiện bằng lan truyền ngược Sai số tại lớp hiện tại thường được truyền ngược lại lớp trước đó để thay đổi các trọng số và

Trang 25

độ lệch sao cho sai số giảm đi Các trọng số được thay đổi bằng cách sử dụng một hàm gọi là hàm tối ưu hoá

Các hàm tối ưu hoá thường tính độ dốc (gradient), tức là tính đạo hàm riêng của hàm mất mát đối với trọng số, và trọng số được thay đổi theo hướng ngược lại của độ dốc tính được Việc này được lặp lại cho đến khi chúng ta đạt đến giá trị cực tiểu của hàm mất mát

2.1.4 Một số mô hình mạng nơron điển hình

Việc xây dựng mạng nơron chỉ dựa trên perceptron sẽ khiến số lượng trọng số (weight) của mô hình trở nên rất lớp, giữa hai lớp có 𝑘 và 𝑚 nơron sẽ tồn tại 𝑘 ∗ 𝑚 kết nối giữa các nơron Bên cạnh đó, các nơron trong cùng một lớp nơron lại không hề có kết nối Do vậy, sau này các nhà nghiên cứu đã tạo ra một số mô hình mạng nơron để giải quyết những vấn đề này

b) Mạng nơron hồi quy

Mạng nơron hồi quy (Recurrent Neural Network - RNN) có thể xử lý các chuỗi đầu vào có độ dài tuỳ ý thông qua ứng dụng đệ quy (recursive application) của một hàm chuyển tiếp trên một vectơ trạng thái ẩn ℎ𝑡

Trang 26

Tại thời điểm 𝑡, trạng thái ẩn ℎ𝑡 là một hàm của vectơ đầu vào 𝑥𝑡 mà mạng nhận được tại thời điểm 𝑡 và trạng thái ẩn trước đó của nó là ℎ𝑡−1 Ví dụ, vectơ đầu vào 𝑥𝑡 có thể là vectơ đại diện của từ thứ 𝑡 trong câu Trạng thái ẩn ℎ𝑡 ∈ ℝ𝑑 có thể hiểu như là một biểu diễn phân tán 𝑑 chiều của chuỗi các dấu hiệu quan sát được đến thời điểm 𝑡 Thông thường, hàm chuyển tiếp của RNN là một chuyển tiếp toàn vẹn (affine transformation) theo sau bởi một phi tuyến rời rạc (pointwise non-linearity) như hàm tiếp tuyến hyperbol

ℎ𝑡 = tanh(W𝑥𝑡 + 𝑈ℎ𝑡−1 + 𝑏) Thật không may, một vấn đề với RNN với các hàm chuyển tiếp dưới dạng này là trong quá trình huấn luyện, các thành phần của vectơ gradient có thể phát triển hoặc phân rã theo cấp số mũ trên các chuỗi dài Vấn đề bùng nổ hoặc biến mất gradient làm cho mô hình RNN khó có thể học các tương quan có khoảng cách lớn trong một chuỗi

c) Mạng bộ nhớ dài ngắn

Kiến trúc bộ nhớ dài-ngắn (Long-Short Term Memory – LSTM) giải quyết vấn

đề học phụ thuộc lâu dài bằng cách giới thiệu một tế bào nhớ có khả năng bảo toàn trạng thái trong một thời gian dài Trong khi nhiều biến thể LSTM đã được mô tả, khóa luận sẽ mô tả phiên bản được sử dụng bởi Tai et al.[3]

Ta định nghĩa đơn vị (unit) LSTM tại mỗi thời điểm 𝑡 là một tập các vectơ trong

ℝ𝑑: một cổng vào (input gate) i𝑡, một cổng quên (forget gate) ƒ𝑡, một cổng ra (output gate) o𝑡, một tế bào nhớ (memory cell) 𝑐𝑡 và một trạng thái ẩn ℎ𝑡 Các đầu vào của các vectơ cổng i𝑡, ƒ𝑡 và o𝑡 có giá trị trong đoạn [0,1] Ta gọi 𝑑 là chiều nhớ (memory dimension) của LSTM

Trang 27

Các phương trình chuyển tiếp của LSTM như sau:

i𝑡 = 𝜎(W(i)𝑥𝑡 + 𝑈(i)ℎ𝑡−1 + 𝑏(i)),

Bộ nhớ dài-ngắn hai chiều (Bi-directional LSTM – Bi-LSTM)[3] là một biến thể của kiến trúc LSTM cơ bản Bi-LSTM bao gồm hai LSTM chạy song song: một trên chuỗi đầu vào và một trên nghịch đảo của chuỗi đầu vào Tại mỗi thời điểm, trạng thái

ẩn của Bi-LSTM được nối từ các trạng thái thái ẩn phía trước và phía sau Thiết lập này cho phép trạng thái ẩn nắm bắt cả thông tin trong quá khứ lẫn tương lai

Bộ nhớ dài-ngắn nhiều lớp (Multilayer LSTM)[3]: Trong kiến trúc bộ nhớ dài ngắn nhiều lớp, trạng thái ẩn của một đơn vị LSTM trong lớp 𝑙 được sử dụng như đầu vào của lớp LSTM 𝑙 + 1 trong cùng thời điểm Ở đây, ý tưởng này để cho các lớp cao hơn nắm bắt các phụ thuộc dài hơn của chuỗi đầu vào

Ngày đăng: 04/06/2024, 02:06

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w