Các bạn thân mến, chúng ta sẽ tiếp tục câu chuyện về mạng nơ-ron mà chúng ta đã bắt đầu lần trước và về cách hoạt động của công nghệ nhận dạng khuôn mặt.

Mạng nơ-ron là gì

Trong trường hợp đơn giản nhất, mạng nơ-ron (hay còn gọi là mạng thần kinh) là một mô hình toán học bao gồm nhiều lớp phần tử thực hiện các phép tính song song. Ban đầu, một kiến ​​trúc như vậy được tạo ra tương tự với các phần tử tính toán nhỏ nhất của não người — các tế bào thần kinh. Các phần tử tính toán nhỏ nhất của mạng nơ-ron nhân tạo cũng được gọi là nơ-ron. Mạng nơ-ron thường bao gồm ba hay nhiều lớp: lớp đầu vào, lớp ẩn (hoặc các lớp ẩn) và lớp đầu ra (Hình 1), trong một số trường hợp, lớp đầu vào và đầu ra không được tính đến, khi đó số lớp trong mạng được tính bằng số lớp ẩn. Loại mạng nơ-ron này được gọi là perceptron.

Hình 1. Perceptron đơn giản nhất

Một tính năng quan trọng của mạng nơ-ron là khả năng học theo những ví dụ, đây được gọi là học có giáo viên. Mạng nơ-ron được đào tạo trên một số lượng lớn các ví dụ bao gồm các cặp đầu vào — đầu ra (đầu vào và đầu ra tương ứng với nhau). Trong các bài toán nhận dạng đối tượng, một cặp như vậy sẽ là hình ảnh đầu vào và nhãn tương ứng của nó - tức là tên đối tượng. Đào tạo mạng nơ-ron là một quá trình lặp đi lặp lại nhằm giảm độ lệch của đầu ra mạng so với «câu trả lời của giáo viên» cho trước — nhãn tương ứng với một hình ảnh nhất định (Hình 2). Quá trình này bao gồm các bước được gọi là kỷ nguyên học tập (chúng thường tính ở hàng nghìn), tại mỗi bước này, “trọng lượng” của mạng nơ-ron — hay còn gọi là các tham số của các lớp ẩn của mạng — được điều chỉnh. Sau khi hoàn thành quá trình đào tạo, chất lượng của mạng nơ-ron thường đủ tốt để thực hiện nhiệm vụ mà nó đã được đào tạo, mặc dù không thể tìm thấy bộ tham số tối ưu để nhận dạng lý tưởng tất cả các hình ảnh.

Обучение нейронной сети
Hình 2. Đào tạo mạng nơ-ron

Mạng nơ-ron sâu là gì

Mạng nơ-ron sâu là mạng nơ-ron bao gồm một vài lớp ẩn (Hình 3). Hình này mô tả một mạng nơ-ron sâu, nó giúp người đọc có một hình dung mang tính khái quát về mạng lưới thần kinh trông như thế nào. Tuy nhiên, kiến ​​trúc thực của mạng nơ-ron sâu phức tạp hơn nhiều.

Hình 3. Một mạng nơ-ron với nhiều lớp ẩn

Tất nhiên, những người tạo ra mạng nơ-ron tích chập ban đầu được lấy cảm hứng từ cấu trúc sinh học của hệ thống thị giác. Các mô hình tính toán đầu tiên dựa vào khái niệm về tổ chức thứ bậc của dòng thị giác linh trưởng, được biết đến như Neocognitron của Fukushima [1] (Hình 4). Sự hiểu biết hiện đại về sinh lý học của hệ thống thị giác tương tự như kiểu xử lý thông tin trong mạng tích chập, ít nhất là để nhận dạng đối tượng nhanh chóng.

Диаграмма, показывающая связи между слоями в модели Неокогнитрон
Hình 4. Sơ đồ hiển thị kết nối giữa các lớp trong mô hình Neocognitron [1].

Sau đó, khái niệm này được nhà nghiên cứu người Canada Yann LeCun thực hiện trong mạng nơ-ron tích chập của mình, được ông tạo ra để nhận dạng các ký tự viết tay [2]. Mạng nơ-ron này bao gồm hai loại lớp: những lớp tích chập và những lớp lấy mẫu con (subsampling, hoặc lớp gộp — pooling). Trong đó, mỗi lớp có cấu trúc dạng địa hình, tức là mỗi nơ-ron được liên kết với một điểm cố định của ảnh gốc, cũng như với một trường thu nhận (một vùng của hình ảnh đầu vào được xử lý bởi nơ-ron này). Tại mỗi vị trí của mỗi lớp có nguyên một dãy các nơ-ron khác nhau, mỗi nơ-ron cùng tập hợp trọng lượng đầu vào của mình liên kết với các nơ-ron trong mảnh hình chữ nhật của lớp trước đó. Các mảnh hình chữ nhật đầu vào khác nhau có cùng một trọng lượng được liên kết với các nơ-ron từ các vị trí khác nhau.

Kiến trúc chung của mạng nơ-ron sâu phục vụ việc nhận dạng mẫu được thể hiện trong hình 5. Hình ảnh đầu vào được biểu diễn dưới dạng một tập hợp các pixel hoặc các vùng nhỏ của hình ảnh (ví dụ: 5×5 pixel)

Hình 5. Sơ đồ mạng nơ-ron tích chập

Thông thường, những mạng nơ-ron sâu được mô tả dưới dạng đơn giản hóa: như các giai đoạn xử lý, đôi khi được gọi là bộ lọc. Mỗi giai đoạn khác nhau ở một số đặc điểm, chẳng hạn như kích thước của trường tiếp nhận, loại tính năng mà mạng học để nhận ra trong một lớp nhất định và loại tính toán được thực hiện ở mỗi giai đoạn.

Các lĩnh vực ứng dụng của mạng nơ-ron sâu, bao gồm cả mạng tích chập, không giới hạn ở việc nhận dạng khuôn mặt. Chúng được sử dụng rộng rãi để nhận dạng giọng nói và các tín hiệu âm thanh, xử lý các bài đọc từ các loại cảm biến khác nhau hoặc để phân đoạn các hình ảnh đa lớp phức tạp (chẳng hạn như bản đồ vệ tinh [3]) hoặc hình ảnh trong y học (ảnh chụp X-quang, hình ảnh cộng hưởng từ đa chức năng fMRI — xem tại đây).

Các mạng nơ-ron trong sinh trắc học và nhận dạng khuôn mặt

Để đạt được độ chính xác nhận dạng cao, mạng nơ-ron được đào tạo trước với một số lượng lớn các hình ảnh, chẳng hạn như trong cơ sở dữ liệu MegaFace. Đây là phương pháp đào tạo chính để nhận dạng khuôn mặt.

База данных MegaFace содержит 1 млн. изображений более 690 тыс. людей
Hình 6. Cơ sở dữ liệu MegaFace chứa 1 triệu hình ảnh của hơn 690 nghìn người

Sau khi mạng đã được huấn luyện để nhận dạng khuôn mặt, quá trình nhận dạng khuôn mặt có thể được mô tả như sau (Hình 7). Đầu tiên, hình ảnh được xử lý bằng máy dò khuôn mặt: một thuật toán sẽ xác định phần chữ nhật có chứa khuôn mặt. Phần mảnh này được chuẩn hóa để cho mạng nơ-ron dễ dàng xử lý: kết quả tốt nhất sẽ đạt được nếu tất cả các hình ảnh đầu vào có cùng kích thước, màu sắc, v.v. Hình ảnh chuẩn hóa được đưa đến đầu vào của mạng nơ-ron để xử lý bằng thuật toán. Thuật toán này thường là một phát triển độc đáo của công ty để cải thiện chất lượng nhận dạng, nhưng cũng có những giải pháp “tiêu chuẩn” cho vấn đề này. Mạng nơ-ron xây dựng một vectơ đặc trưng duy nhất, sau đó được chuyển đến cơ sở dữ liệu. Công cụ tìm kiếm so sánh nó với tất cả các vectơ của các đặc điểm được lưu trữ trong cơ sở dữ liệu và đưa ra kết quả tìm kiếm dưới dạng một số tên nhất định hoặc hồ sơ người dùng có các đặc điểm khuôn mặt tương tự, mỗi đặc điểm được gán một số nhất định. Con số này thể hiện mức độ tương tự của vectơ đặc trưng của chúng ta với vectơ được tìm thấy trong cơ sở dữ liệu.

Hình 7. Quy trình nhận dạng khuôn mặt

Xác định chất lượng thuật toán

Độ chính xác

Khi chúng tôi chọn thuật toán nào sẽ áp dụng để nhận dạng một đối tượng hay một khuôn mặt, chúng tôi phải có phương tiện so sánh hiệu quả của các thuật toán khác nhau. Trong phần này, chúng tôi mô tả các công cụ để thực hiện việc đó [5].

Đánh giá chất lượng hoạt động của hệ thống nhận dạng khuôn mặt được thực hiện bằng cách sử dụng một bộ số liệu tương ứng với các tình huống điển hình để sử dụng hệ thống xác thực bằng sinh trắc học.

Thông thường, hoạt động của bất kỳ mạng nơ-ron nào đều có thể được đo lường về độ chính xác: sau khi thiết lập các tham số và hoàn thành quá trình đào tạo, mạng được kiểm tra trên một tập hợp kiểm tra — chúng tôi có phản hồi của giáo viên đối với tập hợp này, nhưng nó tách biệt với tập huấn luyện. Theo thường lệ thì tham số này là một thước đo định lượng: một con số (thường là phần trăm) cho biết hệ thống có thể nhận ra các đối tượng mới tốt như thế nào. Một thước đo phổ biến khác là sai số (nó có thể được biểu thị bằng phần trăm hoặc bằng số). Tuy nhiên, có nhiều biện pháp chính xác hơn cho sinh trắc học.

Trong sinh trắc học nói chung và sinh trắc học nhận dạng khuôn mặt nói riêng, có hai loại ứng dụng: xác minh (verification) và nhận dạng (với ý nghĩa là định danh, identification). Xác minh là quá trình xác nhận một danh tính nhất định bằng cách so sánh hình ảnh của một cá nhân (vectơ các đặc điểm trên khuôn mặt hoặc một vectơ các đặc điểm khác, ví dụ: võng mạc hoặc dấu vân tay) với một hoặc nhiều mẫu đã lưu trước đó. Nhận dạng là quá trình xác định danh tính của một cá nhân. Các mẫu sinh trắc học được thu thập và so sánh với tất cả các mẫu trong cơ sở dữ liệu. Tồn tại một nhận dạng trong một tập hợp kín các đặc điểm nếu giả định rằng một người tồn tại trong cơ sở dữ liệu. Do đó, nhận dạng (hàm ý của công nghệ nhận dạng khuôn mặt) kết hợp một hoặc cả hai thuật ngữ - xác minh và nhận dạng (trong ý nghĩa định danh).

Thông thường, ngoài kết quả so sánh trực tiếp, cần phải đánh giá mức độ «tin cậy» của hệ thống vào chính quyết định của mình. Giá trị này được gọi là “mức độ tương đồng” (hoặc điểm tương tự, điểm tương đồng, similarity score). Điểm tương đồng cao hơn cho thấy hai mẫu sinh trắc học được so sánh giống nhau hơn.

Có một số phương pháp để đánh giá chất lượng của hệ thống (cho cả nhiệm vụ xác minh và định danh). Chúng ta sẽ nói về chúng vào lần sau. Bạn hãy ở lại cùng chúng tôi thảo luận, đừng ngần ngại viết bình luận và đặt ra những câu hỏi.

CHÚ THÍCH

  1. Fukushima (1980) «Neocognitron: A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position,» Biological Cybernetics.
  2. LeCun, B. Boser, J.S. Denker, D. Henderson, R.E. Howard, W. Hubbard and L.D. Jackel (1989) «Backpropagation Applied to Handwritten Zip Code Recognition», Neural Computation, vol. 1, pp., 541−551.
  3. Jiaxuan You, Xiaocheng Li, Melvin Low, David Lobell, Stefano Ermon
    Deep Gaussian Process for Crop Yield Prediction Based on Remote Sensing Data.
  4. Ian Goodfellow, Yoshua Bengio, Aaron Courville (2016) Deep Learning. MIT press.
  5. Poh, C-H. Chan, J. Kittler, Julian Fierrez (UAM), and Javier Galbally (UAM)(2012) Description of Metrics For the Evaluation of Biometric Performance.
  6. How computers are learning to be creative. (TED)