Ngày nay, giáo dục đóng một vai trò quan trọng trong xã hội hiện đại. Với sự phát triển nhanh chóng của công nghệ Internet và trí tuệ nhân tạo (AI), dạy học thông minh [ITS] lớp học thông minh đã được đưa vào nền giáo dục hiện đại nhằm cung cấp dịch vụ giảng dạy tốt hơn. Các biện pháp nâng cao chất lượng và kết quả giáo dục bắt đầu bằng việc cải thiện kết quả học tập của học sinh trong lớp học. Cụ thể, những thay đổi tích cực trong hành vi của học sinh có thể giúp giáo viên đạt được kết quả tương đối tốt, điều này chắc chắn sẽ có lợi cho quá trình dạy học. Việc quan sát hoạt động của từng học sinh trong một môi trường thông minh, chẳng hạn như nét mặt, sẽ giúp giáo viên điều chỉnh linh hoạt phương pháp giảng dạy bằng cách nhận phản hồi nhanh chóng từ tương tác thời gian thực này và sẽ có lợi cho chất lượng giáo dục. Theo cách này, mục tiêu ban đầu của dự án là triển khai một hệ thống thị giác máy tính thời gian thực tự động cung cấp cái nhìn thông minh về học sinh được quan sát. Với sự phát triển nhanh chóng của học sâu trong lĩnh vực thị giác máy tính, công nghệ theo dõi và phát hiện mục tiêu theo thời gian thực đã có những bước phát triển vượt bậc. Nó có thể được sử dụng trong môi trường thông minh này để giúp đánh giá thành tích của từng học sinh trong lớp học
Trang 1BÀI TẬP HỆ CƠ SỞ TRI THỨC
BÁO CÁO NỘI DUNG CÔNG VIỆC NHÓM Nghiên cứu phát triển phần mềm tự động đánh giá tình hình học tập thông
qua công nghệ xử lý ảnh và trí tuệ nhân tạo AI
(Nội dung 5.2.8-5.2.9)
Nguyễn Duy Khánh
Hà Nội 2020
Trang 3DANH MỤC CÁC CÔNG VIỆC
Nội dung 5: Nghiên cứu phát triển phần mềm tự động đánh giá tình hình học
tập thông qua công nghệ xử lý ảnh và trí tuệ nhân tạo AI
STT Tên nội dung công việc Người thực hiện
1 5.2.8 Nghiên cứu xây dựng phần
mềm tự động đánh giá tình hình họctập thông qua công nghệ xử lý ảnh
và trí tuệ nhân tạo AI
Nông Trần Bình Minh Nguyễn Văn Tuấn
2 5.2.9 Thử nghiệm, đánh giá phần
mềm tự động đánh giá tình hình họctập thông qua công nghệ xử lý ảnh
và trí tuệ nhân tạo AI
Nguyễn Duy Khánh
Trang 4MỤC LỤC
MỞ ĐẦU
CHƯƠNG 1 : NGHIÊN CỨU XÂY DỰNG PHẦN MỀM TỰ ĐỘNG
ĐÁNH GIÁ TÌNH HÌNH HỌC TẬP THÔNG QUA CÔNG NGHỆ XỬ
LÝ ẢNH VÀ TRÍ TUỆ NHÂN TẠO AI
1.1 Tổng quan về Deep Learning trong AI
1.1.1 Khái niệm về Deeo Learning
1.1.2 Cách thức hoạt động của Deep Learning
1.1.3 Các ưu điểm nổi bật của Deep Learning
1.2 Tìm hiểu về Convolutional Neural Network
1.2.1 Mô hình Neural Network
1.2.2 Convolutional Neural Network
CHƯƠNG 2 : NGHIÊN CỨU XÂY DỰNG PHẦN MỀM TỰ ĐỘNG
ĐÁNH GIÁ TÌNH HÌNH HỌC TẬP THÔNG QUA CÔNG NGHỆ XỬ LÝ
ẢNH VÀ TRÍ TUỆ NHÂN TẠO AI
Trang 5-MỞ ĐẦU
Ngày nay, giáo dục đóng một vai trò quan trọng trong xã hội hiện đại Với sự phát
triển nhanh chóng của công nghệ Internet và trí tuệ nhân tạo (AI), dạy học thông
minh [ITS] lớp học thông minh đã được đưa vào nền giáo dục hiện đại nhằm cung
cấp dịch vụ giảng dạy tốt hơn
Các biện pháp nâng cao chất lượng và kết quả giáo dục bắt đầu bằng việc cải thiện
kết quả học tập của học sinh trong lớp học Cụ thể, những thay đổi tích cực trong
hành vi của học sinh có thể giúp giáo viên đạt được kết quả tương đối tốt, điều này
chắc chắn sẽ có lợi cho quá trình dạy học Việc quan sát hoạt động của từng học
sinh trong một môi trường thông minh, chẳng hạn như nét mặt, sẽ giúp giáo viên
điều chỉnh linh hoạt phương pháp giảng dạy bằng cách nhận phản hồi nhanh chóng
từ tương tác thời gian thực này và sẽ có lợi cho chất lượng giáo dục
Theo cách này, mục tiêu ban đầu của dự án là triển khai một hệ thống thị giác máy
tính thời gian thực tự động cung cấp cái nhìn thông minh về học sinh được quan
sát Với sự phát triển nhanh chóng của học sâu trong lĩnh vực thị giác máy tính,
công nghệ theo dõi và phát hiện mục tiêu theo thời gian thực đã có những bước
phát triển vượt bậc Nó có thể được sử dụng trong môi trường thông minh này để
giúp đánh giá thành tích của từng học sinh trong lớp học
Trang 6CHƯƠNG 1: NGHIÊN CỨU XÂY DỰNG PHẦN MỀM TỰ ĐỘNG
ĐÁNH GIÁ TÌNH HÌNH HỌC TẬP THÔNG QUA CÔNG NGHỆ XỬ LÝ
ẢNH VÀ TRÍ TUỆ NHÂN TẠO AI 1.1 Tổng quan về Deep Learning
1.1.1 Khái niệm về Deep Learning
Deep Learning là tập hợp con của Machine Learning và nó có tác dụng hỗ trợ cho
máy tính tự huấn luyện chính nó để có thể thực hiện mọi tác vụ tương tự như con
người Điều này chính là giúp máy tính bắt chước con người cách học hỏi và suy
nghĩ
Các hệ thống của Deep Learning có khả năng cải thiện được những hiệu suất của
chúng với quyền truy cập vào dữ liệu sẽ được nhiều hơn Thông thường, phiên bản
máy sẽ có nhiều kinh nghiệm hơn; những máy móc đã có đủ kinh nghiệm thì sẽ
được mang đi phục vụ cho những công việc như: lái xe, phát hiện cỏ dại, …
Có một số cách để mô tả học sâu Học sâu là một lớp của các thuật toán máy
học mà:
Sử dụng một tầng (cascade) nhiều lớp các đơn vị xử lý phi tuyến để trích
tách đặc điểm và chuyển đổi Mỗi lớp kế tiếp dùng đầu ra từ lớp trước làm
đầu vào Các thuật toán này có thể được giám sát hoặc không cần giám sát và
Trang 7các ứng dụng bao gồm các mô hình phân tích (không có giám sát) và phân
loại (giám sát)
Dựa trên học (không có giám sát) của nhiều cấp các đặc điểm hoặc đại diện
của dữ liệu Các tính năng cao cấp bắt nguồn từ các tính năng thấp cấp hơn
để tạo thành một đại diện thứ bậc
Là một phần của lĩnh vực máy học rộng lớn hơn về việc học đại diện dữ liệu
Học nhiều cấp độ đại diện tương ứng với các mức độ trừu tượng khác nhau;
các mức độ hình thành một hệ thống phân cấp của các khái niệm
Các định nghĩa này có điểm chung là (1) nhiều lớp các đơn vị xử lý phi tuyến và
(2) học có giám sát hoặc không có giám sát của biểu diễn đặc tính ở mỗi lớp, với
các lớp hình thành một hệ thống các tính năng phân cấp từ thấp đến cao cấp.(p200) Các
thành phần của một lớp của đơn vị xử lý phi tuyến sử dụng một thuật toán học sâu
tùy theo vấn đề cần được giải quyết Các lớp được sử dụng trong học sâu bao gồm
các lớp ẩn của một mạng neuron nhân tạo và tập các công thức mệnh đề phức tạp
Chúng cũng có thể bao gồm các biến tiềm ẩn được tổ chức thành các lớp chọn lọc
trong các mô hình thể sinh (có khả năng sinh ra) sâu như các nút trong Deep Belief
Networks và Deep Boltzmann Machines
Các thuật toán học sâu tương phản với các thuật toán học nông bởi số biến đổi
được tham số hóa một tín hiệu gặp phải khi nó lan truyền từ các lớp đầu vào đến
lớp đầu ra, nơi một biến đổi được tham số hóa là một đơn vị xử lý có các thông số
có thể huấn luyện được, chẳng hạn như trọng số và ngưỡng.(p6) Một chuỗi các biến
đổi từ đầu vào đến đầu ra là một đường gán kế thừa (CAP- credit assignment path).
CAP mô tả các kết nối quan hệ nhân quả tiềm năng giữa đầu vào và đầu ra và có
thể thay đổi chiều dài Đối với một mạng neuron nuôi tiến (feedforward), độ sâu
của CAP, và do đó độ sâu của mạng đó, là số lượng các lớp ẩn cộng 1 (lớp đầu ra
cũng là tham số hóa) Đối với mạng neuron tái phát, trong đó một tín hiệu có thể
truyền thông qua một lớp nhiều hơn một lần, CAPcó khả năng không bị giới hạn
chiều dài Không có sự thống nhất chung về ngưỡng của độ sâu chia học cạn với
Trang 8học sâu, nhưng hầu hết các nhà nghiên cứu trong lĩnh vực đồng ý rằng học sâu có
nhiều lớp phi tuyến (CAP > 2) và Schmidhuber coi CAP > 10 để là học rất sâu
1.1.2 Cách thức hoạt động của Deep Learning.
Chúng ta cùng tìm hiểu cách thức hoạt động thông qua 1 ví dụng dự đoán giá vé
máy bay, chúng ta huấn luyện nó sử dụng cách học có giám sát:
Dự đoán giá vé nhờ các thông tin đầu vào sau:
Sân bay đi
Sân bay đến
Ngày bay
Hãng máy bay
1.1.2.1.Mạng neural
Giống như động vật, "bộ não" AI có các tế bào thần kinh, hay còn gọi là tế bào
Xôma Chúng là các vòng tròn trong hình dưới, các tế bào được nối với nhau
Mạng neural được nhóm thành 3 loại lớp:
Lớp đầu vào (Input layers)
Lớp ẩn (Hidden layers)
Trang 9 Lớp đầu ra (Output layers)
Lớp đầu vào nhận dữ liệu đầu vào Trong hình trên, chính là 3 neural trong vùng
đỏ Chúng ta có 4 đầu vào là sân bay đi, sân bay đến, ngày bay, hãng bay Lớp đầu
vào nhận dữ liệu và trả dữ liệu cho lớp ẩn đầu tiên
Lớp ẩn thực hiện tính toán trên dữ liệu từ lớp đầu vào trả về Việc thách thức là
chọn số lượng lớp ẩn, và số neural trong 1 lớp ẩn
Từ "Deep" trong "Deep Learning", ý chỉ mạng của bạn có 1 hay nhiều lớp ẩn,
mạng càng nhiều lớp ẩn thì càng sâu, số neural trong 1 lớp ẩn càng nhiều thì càng
rộng
Lớp đầu ra trả về dữ liệu đầu ra, trong trường hợp này chính là price - giá vé dự
đoán
Nhìn sơ sơ thì là như vậy, còn nó tính toán thế nào là 1 cách vi diệu trong Deep
Learning, hãy cùng xem qua nhé
Mỗi kết nối của 2 neural trong hình bên trên được đặt là 1 Weight hay 1 trọng số
Nó tượng trưng cho tầm quan trọng của giá trị đầu vào, lúc đầu thì các trọng số
được khởi tạo ngẫu nhiên thôi Ví dụ: Khi dự đoán, thì yếu tố "Ngày bay" là quan
trọng hơn cả, nên các kết nối bắt nguồn từ "Ngày bay" sẽ có trọng số lớn hơn 1
chút
Trang 10Mỗi neural có 1 hàm kích hoạt, để hiểu được hàm này làm gì thì cần phải sâu hơn
về toán 1 chút Hiểu đơn giản thì nó chuẩn hóa giá trị đầu ra của mỗi neural sao
cho phù hợp
1.1.2.2.Huấn luyện mạng neural
Để huấn luyện 1 AI trong Deep Leaning là 1 điều khá khó, cần có 2 thứ:
1 tập dữ liệu lớn
1 thiết bị tính toán tốt
Ở đây, để dự đoán tốt giá vé, thì chúng ta cần tìm dữ liệu lịch sử của giá vé, gồm
nhiều hãng bay khác nhau, vì thế dữ liệu khá lớn
Để huấn luyện AI, chúng ta cung cấp tập dữ liệu đầu vào và so sánh dữ liệu đầu ra
của nó với dữ liệu đầu ra mong muốn Vì AI vẫn chưa được huấn luyện tốt nhất
nên kết quả đầu ra vẫn còn sai
Để đánh giá kết quả đầu ra của AI sai đến đâu so với kết quả đầu ra mong muốn
của chúng ta, ta sẽ dùng hàm chi phí gọi là Cost Function
Trang 11Điều lý tưởng là hàm Cost Function sẽ trả về giá trị 0, lúc này đầu ra AI của chúng
ta giống hệt kết quả mong muốn
1.1.3 Các ưu điểm nổi bật của Deep Learning
Deep Learning có độ chính xác cao, có thể học sâu rộng và đạt được độ
chính xác ở mức công nhận vô cùng cao Điều này sẽ đảm bảo cho thiết bị
điện tử tiêu dùng có thể đáp ứng được mọi nhu cầu cũng như mong đợi từ
phía người dùng Deep Learning rất trọng về độ an toàn đối với những mô
hình xe không người lái
Các dữ liệu của Deep Learning sẽ được dán nhãn bởi: Việc phát triển của xe
không người lái đòi hỏi hàng triệu hình ảnh cũng như hàng ngàn giờ để xem
video
GPU có hiệu suất cao và có kiến thức song song nên rất hiệu quả cho Deep
Learning Nếu như kết hợp với điện toán đám mây hoặc các cụm thì nó cho
phép nhóm phát triển có thể giảm xuống tối đa thời gian đào tạo đối với
mạng lưới học tập sau vài tuần hoặc vài giờ
1.2 Tìm hiểu về Convolutional Neural Network
Trong mạng nơ-ron, mạng nơ-ron tích chập (ConvNets hay CNNs, Convolutional
Neural Network) là một trong những phương pháp chính để thực hiện nhận dạng
hình ảnh, phân loại hình ảnh CNN được sử dụng rộng rãi trong một số lĩnh vực
như phát hiện đối tượng, nhận dạng khuôn mặt,
1.2.1 Mô hình neural network
Mạng nơ-ron nhân tạo (Neural Network - NN) là một mô hình lập trình mô phỏng
cách thức hoạt động của mạng nơ-ron thần kinh Kết hợp với các kĩ thuật học sâu
(Deep Learning - DL), mạng nơ-ron nhân tạo đang trở thành một công cụ rất mạnh
Trang 12mẽ mang lại hiệu quả tốt nhất cho nhiều bài toán khó như nhận dạng ảnh, giọng nói
hay xử lý ngôn ngữ tự nhiên
Lịch sử phát triển của mạng nơ-ron nhân tạo bắt đầu khi Warren McCulloch và
Walter Pitts đã tạo ra một mô hình tính toán cho mạng nơ-ron dựa trên các thuật
toán gọi là logic ngưỡng vào năm 1943 Tuy nhiên, để làm quen và hiểu được một
số kiến thức cơ bản về mô hình mạng nơ-ron nhân tạp, chúng ta sẽ bàn đến hồi quy
logictics - thứ có thể coi là mô hình neural network đơn giản nhất với chỉ input
layer và output layer
Giả sử chúng ta có bài toán dựa đoán khả năng nhận đơn giao hàng dựa trên
khoảng cách và thời điểm cần giao trong ngày dựa trên dữ liệu đã cho trước Từ đó
ta có thể hiểu rằng với các bộ dữ liệu {x, y} cho sẵn với x có hai đặc trưng x1 và x2
lần lượt là khoảng cách và thời điểm cần giao trong ngày, chúng ta sẽ sử dụng các
phương pháp để tìm được ước lượng ^y=f (w , x ) sao cho sát với giá trị y nhất
Thông thường, chúng ta thường sử dụng hàm f ( w , x )=w T x để dễ tính toán, tuy nhiên
đầu ra y là xác suất đơn hàng có được nhận hay không nên để đầu ra thỏa mãn được
điều kiện có dạng tương tự xác suất tức là luôn có giá trị trong khoảng từ 0 đến 1
chúng ta thường sử dụng hàm logictics θ ( z)= 1
1+e−z với z=f (w , x) thường được gọi làhàm sigmod làm hàm activation
Khi đó, hàm lỗi của một cho mỗi điểm {x(i), y(i)} được định nghĩa là cross-entropy
của y(i ) và ^y(i ) như sau:
L = −(y(i)
∗log(^y(i))−(1− y(i))∗log(1−^y(i)))
Khi đó hàm này trên toàn bộ dữ liệu được tính bằng cách lấy tổng các giá trị trên
Bằng cách tối ưu hàm mất mát này, thường bằng phương pháp đạo hàm gradient,
chúng ta có thể có thể thu được mô hình phù hợp nhất cho bài toán cũng như bộ dữ
liệu đã cho Tuy nhiên, dù cố gắng nhưng hầu như giá trị ước lượng từ hàm trên
vẫn có một số chênh lệch với giá trị thực tế, bởi vậy để đảm bảo cho tính khách
quan, người ta thường thêm một giá trị b hay w0 vào để tính bằng cách sử
Trang 13dụng f ( w , x )=w T x +w0 giá trị này là giá trị bias có thể hiểu là phần bù cho những
chênh lệch khó/không thể cực tiểu từ bước trên
Thông thường các bước tính toán của một mô hình mạng nơ-ron nhân tạo thường
được thể hiện bằng một biểu đồ tính toán để có thể quan sát trực quan hơn Dưới
đây là một biểu đồ thể hiện cho bài toán phân loại dựa trên hồi quy logictics
1.2.2 Convolutional Neural Network
Như trình bày ở trên, Convolutional Neural Network là một trong những phương
pháp chính khi sử dụng dữ liệu về ảnh Kiến trúc mạng này xuất hiện do các
phương pháp xử lý dữ liệu ảnh thường sử dụng giá trị của từng pixel Vậy nên với
một ảnh có giá trị kích thước 100x100 sử dụng kênh RGB ta có tổng cộng ta có 100
* 100 * 3 bằng 30000 nút ở lớp đầu vào Điều đó kéo theo việc có một số lượng lớn
weight và bias dẫn đến mạng nơ-ron trở nên quá đồ sộ, gây khó khăn cho việc tính
toán Hơn nữa, chúng ta có thể thấy rằng thông tin của các pixel thường chỉ chịu tác
động bởi các pixel ngay gần nó, vậy nên việc bỏ qua một số nút ở tầng đầu vào
trong mỗi lần huấn luyện sẽ không làm giảm độ chính xác của mô hình Vậy nên
người ta sử dụng cửa số tích chập nhằm giải quyết vấn đề số lượng tham số lớn mà
vẫn trích xuất được đặc trưng của ảnh
Về mặt kỹ thuật, trong mô hình học sâu CNN, mô hình ảnh đầu vào sẽ chuyển nó
qua một loạt các lớp tích chập với các bộ lọc, sau đó đến lớp Pooling, rồi tiếp theo
là các lớp được kết nối đầy đủ (FC — fully connected layers) và cuối cùng áp dụng
Trang 14hàm softmax để phân loại một đối tượng dựa trên giá trị xác suất trong khoản từ 0
đến 1
1.2.2.1.Convolution Layer
Convolution (lớp tích chập) là lớp đầu tiên trích xuất các đặc tính từ hình ảnh
Tham số lớp này bao gồm một tập hợp các bộ lọc có thể học được Các bộ lọc đều
nhỏ thường có kích cỡ hai chiều đầu tiên khoảng 3x3 hoặc 5x5, và có độ sâu
bằng với độ sâu của đầu vào đầu vào Bằng cách trượt dần bộ lọc theo chiều ngang
và dọc trên ảnh, chúng thu được một Feature Map chứa các đặc trưng được trích
xuất từ trên hình ảnh đầu vào
Quá trình trượt các bộ lọc thường có các giá trị được quy định bao gồm:
padding: quy định bộ đệm của bộ lọc hay chính là phần màu xám được
thêm vào ảnh
stride: quy định bước nhảy trong quá trình thực hiện
Hình minh họa về quá trình trên:
Trang 15Hình ảnh chụp từ trang CS231n Convolutional Neural Networks for Visual Recognition
Với mỗi kernel khác nhau ta sẽ học được những đặc trưng khác nhau của ảnh, nên
trong mỗi convolutional layer ta sẽ dùng nhiều kernel để học được nhiều thuộc tính
của ảnh Vì mỗi kernel cho ra output là 1 matrix nên k kernel sẽ cho ra k output
matrix Ta kết hợp k output matrix này lại thành 1 tensor 3 chiều có chiều sâu k
Output của convolutional layer sẽ qua hàm activation function trước khi trở thành
input của convolutional layer tiếp theo
1.2.2.2.Pooling layer
Pooling layer thường được dùng giữa các convolutional layer, để giảm kích thước
dữ liệu nhưng vẫn giữ được các thuộc tính quan trọng Kích thước dữ liệu giảm
Trang 16giúp giảm việc tính toán trong model Trong quá trình này, quy tắc về stride và
padding áp dụng như phép tính convolution trên ảnh
1.2.2.3.Fully connected layer
Sau khi ảnh được truyền qua nhiều convolutional layer và pooling layer thì model
đã học được tương đối các đặc điểm của ảnh thì tensor của output của layer cuối
cùng sẽ được là phẳng thành vector và đưa vào một lớp được kết nối như một mạng
nơ-ron Với FC layer được kết hợp với các tính năng lại với nhau để tạo ra một mô
hình Cuối cùng sử dụng softmax hoặc sigmoid để phân loại đầu ra