Mạng ANN cổ điển
Một dây chuyền lắp ráp dùng camera để kiểm tra linh kiện trước khi đóng gói. Mỗi ảnh phải được phân loại thành hai nhóm: đạt yêu cầu hoặc có lỗi bề mặt. Ở cách tiếp cận truyền thống, kỹ sư trước hết thiết kế một chuỗi xử lý ảnh để đo độ tương phản, mật độ cạnh, diện tích vùng tối, độ cong đường biên và nhiều đại lượng khác. Các phép đo này được ghép thành một vector đặc trưng, sau đó mới đưa vào bộ phân loại.
Cách làm đó tách bài toán thành hai phần rõ ràng. Con người quyết định ảnh nên được biểu diễn bằng thông tin nào; thuật toán chỉ học cách dùng các thông tin đã được chuẩn bị để đưa ra quyết định. Artificial Neural Network, thường viết tắt là ANN, bắt đầu làm mờ ranh giới này. Thay vì chỉ học một ranh giới trên vector đầu vào, mạng có thể học thêm những phép biến đổi trung gian để tạo ra representation phù hợp hơn với nhiệm vụ.
Sự thay đổi không xảy ra trong một bước. Một neuron nhân tạo riêng lẻ về cơ bản vẫn chỉ là một bộ phân loại tuyến tính. Perceptron bổ sung khả năng học trọng số nhưng vẫn thất bại trước những cấu trúc đơn giản như XOR. Tầng ẩn giải quyết giới hạn đó bằng cách biến đổi không gian đầu vào. Backpropagation tiếp tục giải quyết câu hỏi khó hơn: khi mạng có nhiều tầng, làm thế nào biết mỗi trọng số phải thay đổi bao nhiêu? Từ chuỗi ý tưởng này, ANN cổ điển dần phát triển thành deep learning.
Neuron nhân tạo
Tên gọi neuron xuất phát từ một phép so sánh có chủ đích với hệ thần kinh. Một neuron sinh học nhận nhiều tín hiệu qua dendrite, tích hợp chúng tại thân tế bào và phát xung qua axon khi trạng thái điện đạt điều kiện nhất định. Mức ảnh hưởng giữa các neuron cũng có thể thay đổi theo quá trình học. Neuron nhân tạo giữ lại hình dạng trừu tượng của quá trình đó: nhiều đầu vào, các kết nối có cường độ khác nhau, một bước tổng hợp và một đầu ra.
Sự tương đồng chỉ nên dừng ở mức này. ANN không mô phỏng đầy đủ điện thế theo thời gian, cấu trúc dendrite, chất dẫn truyền thần kinh hay cơ chế plasticity của não. Nó là một mô hình toán học được thiết kế để tối ưu bằng dữ liệu, không phải bản sao thu nhỏ của neuron sinh học.
Một neuron nhân tạo nhận vector đầu vào
và một vector trọng số có cùng số chiều
Trước hết, neuron tính tổng có trọng số:
là tín hiệu đầu vào thứ , xác định mức ảnh hưởng của tín hiệu đó, còn là bias. Giá trị được gọi là pre-activation vì nó mới là kết quả tổng hợp tuyến tính, chưa phải đầu ra cuối cùng của neuron.
Trong bài toán kiểm tra linh kiện, có thể là diện tích vùng tối, là mật độ cạnh và là độ lệch hình dạng. Nếu vùng tối thường xuất hiện ở linh kiện lỗi, trọng số tương ứng có thể mang giá trị dương. Nếu một đường biên đều là dấu hiệu của linh kiện đạt chuẩn, đặc trưng mô tả độ đều có thể nhận trọng số âm. Bias cho phép thay đổi mức bằng chứng cần thiết trước khi neuron chuyển sang dự đoán lỗi.
Sau phép tổng có trọng số, neuron áp dụng activation function:
là activation của neuron và quyết định cách đầu ra phản ứng với . Ở mô hình ngưỡng cổ điển, activation chỉ nhận 0 hoặc 1. Ở mạng neural hiện đại, sigmoid, tanh hoặc ReLU tạo ra các dạng phi tuyến khác nhau.
Nếu nhìn riêng từng công thức, neuron có vẻ chỉ là một phép tính nhỏ. Điều quan trọng nằm ở cách diễn giải hình học. Phương trình
xác định một hyperplane trong không gian đầu vào. Vector quyết định hướng của hyperplane, còn quyết định vị trí của nó. Một neuron ngưỡng chỉ kiểm tra mẫu nằm ở phía nào của ranh giới này. Vì vậy, năng lực của neuron đơn không chỉ bị giới hạn bởi số lượng đầu vào; nó bị giới hạn bởi hình dạng tuyến tính của ranh giới quyết định.
Perceptron
Các mô hình neuron ngưỡng ban đầu cho thấy phép cộng có trọng số có thể biểu diễn những cổng logic như AND hoặc OR. Tuy nhiên, việc tự chọn trọng số cho từng bài toán không phải là học máy. Bước tiến của perceptron nằm ở chỗ trọng số được điều chỉnh từ các mẫu đã gán nhãn.
Với bài toán nhị phân, perceptron dự đoán
trong đó là nhãn dự đoán và là hàm chỉ thị. Nếu tổng có trọng số không âm, mẫu được gán vào lớp 1; nếu tổng âm, mẫu thuộc lớp 0.
Giả sử một linh kiện lỗi bị dự đoán nhầm thành đạt chuẩn. Khi đó, ranh giới hiện tại đang đặt mẫu này ở sai phía. Perceptron sửa trọng số theo
và sửa bias theo
là nhãn thật, là nhãn dự đoán và là learning rate. Nếu mẫu dương bị dự đoán thành âm, dương và được kéo về hướng của . Giá trị của mẫu đó tăng lên, nên lần dự đoán sau nó có khả năng đi sang phía dương của ranh giới. Nếu một mẫu âm bị dự đoán thành dương, cập nhật diễn ra theo chiều ngược lại.
Quy tắc này nối trực tiếp lỗi dự đoán với chuyển động của ranh giới quyết định. Perceptron không biết khái niệm vết xước hay vùng tối. Nó chỉ liên tục xoay và dịch hyperplane để sửa các mẫu đang bị đặt sai phía.
Khi hai lớp linearly separable, nghĩa là tồn tại một hyperplane tách hoàn toàn chúng, perceptron có thể hội tụ đến một nghiệm sau hữu hạn lần cập nhật. Nghiệm này không nhất thiết có margin lớn nhất hoặc xác suất tốt nhất; nó chỉ cần phân loại đúng tập huấn luyện. Khi dữ liệu không linearly separable, các yêu cầu từ những mẫu khác nhau xung đột với nhau. Ranh giới vừa được kéo để sửa mẫu này có thể lại làm sai mẫu khác, khiến thuật toán dao động mà không đạt nghiệm hoàn hảo.
Giới hạn đó xuất hiện ngay cả ở bài toán rất nhỏ. Với XOR, hai điểm và thuộc một lớp, còn và thuộc lớp kia. Không thể vẽ một đường thẳng để tách hai nhóm. Huấn luyện lâu hơn không giải quyết được, bởi vấn đề không nằm ở quy tắc cập nhật mà nằm ở họ mô hình. Một neuron chỉ tạo được một ranh giới tuyến tính, trong khi XOR cần ghép nhiều miền quyết định.
XOR cho thấy con đường phải đi tiếp. Nếu không thể phân loại dữ liệu trong không gian đầu vào hiện tại, mạng cần tạo một không gian biểu diễn mới. Trong không gian đó, những điểm vốn đan xen có thể trở nên linearly separable. Tầng ẩn xuất hiện để thực hiện chính phép biến đổi này.
Multilayer perceptron
Multilayer perceptron, viết tắt là MLP, nối nhiều neuron thành các tầng. Mỗi neuron ở hidden layer nhận đầu ra của tầng trước, thực hiện phép tổng có trọng số rồi áp dụng activation function. Với một tầng ẩn, toàn bộ mạng có thể viết thành
và là tham số của hidden layer. Vector là hidden representation được tạo từ đầu vào. và biến đổi representation đó thành dự đoán, còn là activation của output layer.
Cách viết này làm rõ vai trò của tầng ẩn. Output layer không còn phải phân loại trực tiếp trên . Nó phân loại trên , một hệ tọa độ đã được mạng thay đổi. Mỗi neuron ẩn tạo một ranh giới tuyến tính riêng trong không gian đầu vào. Activation của nhiều neuron cho biết mẫu nằm ở phía nào và cách mỗi ranh giới bao xa. Tầng sau kết hợp các kết quả đó để tạo thành vùng quyết định phức tạp hơn.
Với XOR, hai neuron ẩn có thể chia mặt phẳng bằng hai đường thẳng khác nhau. Từng neuron riêng lẻ vẫn không giải được bài toán, nhưng cặp activation của chúng tạo ra representation trong đó các mẫu dương được gom lại theo một cấu trúc dễ phân tách. Neuron đầu ra chỉ cần đặt thêm một ranh giới tuyến tính trên representation mới.
Điều tương tự xảy ra ở bài toán linh kiện, chỉ với số chiều lớn hơn. Một neuron ẩn có thể phản ứng khi vùng tối lớn và độ tương phản cao. Neuron khác phản ứng khi đường biên bị lệch nhưng texture vẫn bình thường. Một loại lỗi có thể không được mô tả tốt bởi bất kỳ đặc trưng đơn lẻ nào, nhưng lại trở nên rõ ràng qua tổ hợp activation của nhiều neuron.
Tầng ẩn vì thế không đơn thuần là nơi chứa thêm tham số. Nó học một phép biến đổi representation. Nếu tầng ẩn làm tốt công việc này, output layer nhận được một bài toán dễ hơn so với dữ liệu ban đầu.
Tuy nhiên, việc xếp nhiều phép biến đổi tuyến tính liên tiếp vẫn chưa đủ. Nếu bỏ activation function, hai tầng tuyến tính rút gọn thành một tầng:
là ma trận tương đương của toàn bộ chuỗi. Dù mạng có bao nhiêu tầng, kết quả vẫn chỉ là một phép biến đổi tuyến tính. Activation phi tuyến ngăn sự rút gọn này và cho phép các tầng ghép thành ranh giới phi tuyến.
Sigmoid là một activation cổ điển:
Nó biến mọi giá trị thực thành khoảng . Khi tăng, activation tiến gần 1; khi giảm, activation tiến gần 0. Tanh có vai trò tương tự nhưng đầu ra nằm trong . ReLU dùng quy tắc đơn giản hơn:
ReLU giữ nguyên miền dương và đặt miền âm về 0. Mỗi activation tạo một hình học khác cho representation và một đường truyền gradient khác trong quá trình huấn luyện. Lựa chọn activation do đó liên quan đồng thời đến năng lực biểu diễn và khả năng tối ưu.
Đến đây, MLP đã có đủ cấu trúc để biểu diễn những hàm phức tạp. Nhưng khả năng biểu diễn chưa trả lời được câu hỏi quan trọng nhất: hàng nghìn trọng số trong nhiều tầng phải được chọn bằng cách nào để cùng tạo ra dự đoán đúng?
Forward propagation và loss function
Muốn học, mạng trước hết phải tạo một dự đoán từ tham số hiện tại. Quá trình đưa dữ liệu từ input layer qua các hidden layer đến output layer được gọi là forward propagation. Với mạng có tầng, ta đặt
và tại mỗi tầng tính
là representation đi vào tầng , là kết quả tuyến tính trước activation, còn là representation đi ra. Công thức lặp lại cùng một cấu trúc qua toàn bộ mạng: biến đổi tuyến tính rồi phi tuyến.
Giả sử hệ thống nhận vector 64 đặc trưng của một linh kiện. Hidden layer đầu có thể tạo 128 activation, tầng tiếp theo nén chúng thành 32 activation, còn output layer tạo một logit . Với phân loại nhị phân, sigmoid biến logit thành
được dùng như xác suất dự đoán linh kiện thuộc lớp lỗi. Nếu gần 1, mô hình nghiêng về lớp lỗi; nếu gần 0, mô hình nghiêng về lớp đạt chuẩn.
Dự đoán chỉ trở thành tín hiệu học khi được so sánh với nhãn thật. Binary cross-entropy đo sai lệch bằng
là nhãn thật. Nếu , thành phần buộc mô hình tăng xác suất lớp lỗi. Nếu , thành phần buộc xác suất đó giảm. Một dự đoán sai nhưng rất tự tin tạo loss lớn hơn một dự đoán sai còn do dự.
Trên tập dữ liệu có mẫu, objective thường là loss trung bình cộng với regularization:
chứa toàn bộ trọng số và bias, là hàm do mạng biểu diễn, là regularization term và kiểm soát mức ảnh hưởng của regularization.
Loss biến yêu cầu “hãy phân loại đúng” thành một đại lượng liên tục có thể tối ưu. Tuy nhiên, biết mạng sai bao nhiêu vẫn chưa cho biết trọng số nào gây ra lỗi. Output chỉ nằm ở tầng cuối, trong khi nguyên nhân có thể bắt đầu từ cách tầng đầu biến đổi dữ liệu. Cần một cơ chế lần ngược từ loss qua toàn bộ chuỗi phép tính. Đó là vai trò của backpropagation.
Backpropagation và gradient descent
Backpropagation dùng chain rule để tính đạo hàm của loss đối với từng tham số. Nó không phải một optimizer và không tự cập nhật trọng số. Backpropagation trả lời câu hỏi: nếu thay đổi một trọng số rất nhỏ, loss sẽ thay đổi theo hướng nào và với độ lớn bao nhiêu?
Trước hết, xét một đường tính toán đơn giản:
Nếu phụ thuộc vào , phụ thuộc vào và loss phụ thuộc vào , chain rule cho
Mỗi đạo hàm cục bộ cho biết một bước trong chuỗi truyền thay đổi như thế nào. Tích của chúng cho biết ảnh hưởng tổng thể từ biến đầu đến loss. Mạng neural chỉ mở rộng chuỗi này thành một đồ thị lớn gồm nhiều vector, ma trận và nhánh tính toán.
Tại tầng , ta định nghĩa error signal
\boldsymbol{\delta}^{(l)} = \frac{\partial\mathcal{L}} {\partial\mathbf{z}^{(l)}}.\Error signal ở hidden layer được tính từ tầng sau:
trong đó là phép nhân theo từng phần tử. Thành phần đưa ảnh hưởng của lỗi từ tầng sau quay về tầng hiện tại. Đạo hàm điều chỉnh ảnh hưởng đó theo mức nhạy của activation tại từng neuron.
Khi đã có , gradient của trọng số là
Vế phải kết hợp hai thông tin. cho biết tín hiệu nào đã đi vào kết nối trong forward pass. cho biết neuron đích cần thay đổi theo hướng nào để giảm loss. Một kết nối chỉ nhận gradient lớn khi đầu vào của nó hoạt động mạnh và lỗi truyền về neuron đích cũng lớn.
Backpropagation làm việc hiệu quả vì các đạo hàm trung gian được tái sử dụng. Sau khi tính error signal ở một tầng, cùng kết quả đó phục vụ việc tính gradient cho toàn bộ trọng số của tầng và tiếp tục truyền về tầng trước. Mạng có nhiều tham số không cần tính lại toàn bộ forward pass cho từng trọng số.
Gradient sau đó được optimizer dùng để cập nhật tham số. Gradient descent cơ bản thực hiện
trong đó là learning rate. Gradient chỉ hướng tăng nhanh nhất của objective ở lân cận hiện tại, nên đi theo hướng âm làm objective giảm nếu bước đủ phù hợp.
Toàn bộ quá trình huấn luyện hình thành một vòng lặp thống nhất. Forward propagation tạo representation và dự đoán. Loss đo chất lượng dự đoán. Backpropagation tính trách nhiệm của từng tham số đối với loss. Optimizer cập nhật tham số. Dữ liệu mới lại đi qua mạng với các tham số vừa thay đổi. Sau nhiều vòng, các hidden representation dần được tổ chức theo hướng có ích cho nhiệm vụ.
Representation learning
Đây là điểm mà ANN vượt ra ngoài hình ảnh một tập neuron nối với nhau. Thứ mạng học không chỉ là ranh giới quyết định cuối cùng. Mỗi hidden layer học một cách biểu diễn dữ liệu để tầng sau xử lý thuận lợi hơn.
Quay lại hệ thống kiểm tra linh kiện. Nếu đầu vào là vector đặc trưng thủ công, kỹ sư đã quyết định trước các trục tọa độ: độ tương phản, mật độ cạnh, độ cong, diện tích vùng tối. MLP không bị buộc phải giữ nguyên hệ tọa độ này. Tầng đầu có thể tạo các tổ hợp như “độ tương phản cao nhưng vùng tối tập trung” hoặc “đường biên lệch đồng thời texture không đều”. Tầng tiếp theo kết hợp những tổ hợp đó thành pattern gần với từng loại lỗi hơn.
Một hidden representation tốt không nhất thiết dễ đặt tên. Từng chiều của có thể không tương ứng với một khái niệm riêng biệt. Thông tin thường được phân bố trên nhiều neuron, và một neuron có thể tham gia biểu diễn nhiều pattern khác nhau. Ý nghĩa của representation nằm ở cấu trúc hình học mà nó tạo ra: các mẫu cần phân biệt được kéo xa nhau, còn các mẫu có hành vi tương tự được đặt gần nhau hoặc nằm trong những vùng mà tầng sau dễ chia tách.
Điều này giải thích vì sao tầng ẩn giải được XOR. Mạng không tìm một đường thẳng tốt hơn trong mặt phẳng cũ. Nó tạo một representation mới rồi đặt đường thẳng trong không gian mới. Cùng nguyên lý đó mở rộng lên dữ liệu thực: thay vì cố ép một classifier đơn giản xử lý representation kém, mạng học cả representation và classifier trong cùng một objective.
Tuy vậy, ANN cổ điển thường chưa học hoàn toàn từ dữ liệu thô. MLP fully connected xem mỗi phần tử đầu vào như một chiều độc lập và dùng tham số riêng cho mọi kết nối. Nếu đưa trực tiếp một ảnh lớn vào MLP, số trọng số tăng nhanh, còn cấu trúc không gian giữa các pixel không được khai thác hiệu quả. Vì thế, nhiều hệ thống ANN cổ điển vẫn dựa vào feature engineering đáng kể trước khi huấn luyện mạng.
Chính giới hạn này mở đường cho các kiến trúc chuyên biệt. Convolutional network đưa vào giả định rằng pattern cục bộ có thể xuất hiện ở nhiều vị trí, nhờ đó chia sẻ cùng một kernel trên ảnh. Recurrent network tổ chức phép tính theo chuỗi. Attention cho phép các phần tử trao đổi thông tin dựa trên nội dung. Các kiến trúc khác nhau không từ bỏ representation learning; chúng đưa thêm cấu trúc vào cách representation được hình thành.
Độ sâu
Một hidden layer đã có thể tạo ranh giới phi tuyến, vậy tại sao cần nhiều tầng? Câu trả lời không đơn giản là “nhiều tầng thì mạnh hơn”. Giá trị của độ sâu nằm ở khả năng biểu diễn một hàm phức tạp dưới dạng chuỗi các phép biến đổi có tổ chức.
Mạng có tầng biểu diễn
Mỗi nhận representation của tầng trước và tạo representation cho tầng sau. Nếu bài toán có cấu trúc phân cấp, cách hợp thành này khớp tự nhiên với dữ liệu. Trong ảnh, cạnh được tạo từ chênh lệch cường độ cục bộ; texture và contour được tạo từ nhiều cạnh; bộ phận được tạo từ contour; hình dạng đối tượng được tạo từ các bộ phận.
Ở hệ thống kiểm tra linh kiện, tầng gần ảnh có thể phát hiện biến thiên cục bộ. Tầng giữa kết hợp chúng thành vết xước, lỗ khuyết hoặc biên cong bất thường. Tầng sâu hơn kết hợp vị trí và quan hệ giữa các pattern để quyết định linh kiện có lỗi. Mỗi tầng chỉ cần giải một bước biến đổi thay vì học trực tiếp ánh xạ rất phức tạp từ pixel sang nhãn.
Mạng nông rộng cũng có thể xấp xỉ nhiều hàm, nhưng đôi khi cần số neuron rất lớn để biểu diễn cấu trúc mà mạng sâu mô tả gọn hơn bằng cách tái sử dụng các thành phần trung gian. Độ sâu tạo lợi thế biểu diễn khi hàm mục tiêu thực sự có cấu trúc hợp thành.
Nhưng thêm tầng cũng làm việc học khó hơn. Gradient phải đi qua nhiều phép biến đổi trước khi tới các tầng đầu. Với sigmoid hoặc tanh, đạo hàm có thể nhỏ ở vùng bão hòa. Gradient ở tầng sớm chứa tích của nhiều Jacobian:
Nếu các thừa số thường có độ lớn nhỏ hơn 1, tích giảm nhanh và vanishing gradient xuất hiện. Tầng cuối vẫn thay đổi trong khi tầng đầu gần như không học. Nếu độ lớn của tích tăng nhanh, exploding gradient làm cập nhật mất ổn định.
Đây là lý do mạng sâu không tự nhiên trở nên hữu ích chỉ vì có thêm layer. Khả năng biểu diễn tăng lên, nhưng khả năng tối ưu có thể giảm. ReLU tạo đường truyền gradient thuận lợi hơn trong miền dương. Initialization phù hợp giữ thang activation và gradient ổn định hơn. Normalization kiểm soát phân bố tín hiệu. Residual connection tạo đường truyền ngắn hơn cho thông tin và gradient. Những cải tiến này không thay đổi nguyên lý neuron, nhưng làm nguyên lý đó hoạt động được ở độ sâu lớn.
ANN cổ điển và deep learning
Ranh giới giữa ANN cổ điển và deep learning không nằm ở một con số tầng cố định. Sự khác biệt rõ hơn nằm ở phần nào của pipeline được học từ dữ liệu và cách kiến trúc khai thác cấu trúc của đầu vào.
Trong pipeline cổ điển của bài toán linh kiện, ảnh đi qua các bước xử lý do kỹ sư thiết kế. Hệ thống tách biên, đo texture, tính hình học rồi tạo vector đặc trưng. MLP nhận vector này và học ranh giới phi tuyến. Mạng có representation learning, nhưng representation đầu vào quan trọng nhất vẫn do con người quyết định.
Trong deep learning, ảnh có thể đi thẳng vào convolutional backbone. Các tầng đầu học bộ lọc cục bộ, các tầng sau tạo feature map ngày càng giàu ngữ nghĩa, và classifier chỉ là phần cuối. Feature extraction cùng classification được tối ưu end-to-end bằng một loss. Khi dự đoán sai, gradient không chỉ sửa tầng phân loại mà còn sửa cách những tầng đầu nhìn ảnh.
Sự chuyển đổi này đòi hỏi nhiều điều kiện cùng xuất hiện. Dữ liệu đủ lớn giúp mạng học representation mà không chỉ ghi nhớ. GPU và phép toán ma trận hiệu quả làm huấn luyện khả thi. Activation, initialization, normalization và optimizer giảm khó khăn tối ưu. Các kiến trúc như convolution đưa inductive bias phù hợp vào mô hình. Không có một phát minh đơn lẻ biến ANN thành deep learning; đó là kết quả của nhiều cải tiến cùng làm mạng sâu có thể huấn luyện và tổng quát hóa.
Dù kiến trúc hiện đại phức tạp hơn, các phép tính nền tảng vẫn có thể lần về neuron nhân tạo. Convolution là phép tổng có trọng số trên một vùng cục bộ với trọng số được chia sẻ. Attention tạo trọng số phụ thuộc nội dung rồi dùng weighted sum để tổng hợp thông tin. MLP vẫn xuất hiện trong Transformer như các feed-forward block. Khác biệt lớn nằm ở cách các đơn vị được kết nối và cách tham số được chia sẻ, không nằm ở việc từ bỏ phép biến đổi có trọng số.
Deep learning do đó là phần tiếp nối của ANN. Perceptron cho thấy trọng số có thể học từ lỗi. Tầng ẩn cho thấy mạng có thể học representation phi tuyến. Backpropagation cho phép mọi tầng cùng nhận tín hiệu huấn luyện. Độ sâu biến một phép biến đổi đơn lẻ thành chuỗi representation phân cấp. Kiến trúc hiện đại làm chuỗi đó phù hợp hơn với từng loại dữ liệu.
Generalization và giới hạn
Một mạng có thể giảm training loss bằng hai con đường: học cấu trúc có thể áp dụng cho mẫu mới hoặc ghi nhớ những chi tiết riêng của tập huấn luyện. Mục tiêu thực tế là con đường thứ nhất, nhưng objective huấn luyện không tự phân biệt hoàn toàn hai trường hợp.
Trong dây chuyền linh kiện, giả sử toàn bộ ảnh lỗi được chụp ở ca đêm và toàn bộ ảnh đạt chuẩn được chụp ở ca ngày. Mạng có thể dùng độ sáng nền để phân loại mà không học bất kỳ dấu hiệu lỗi nào. Training accuracy và thậm chí validation accuracy vẫn cao nếu cách chia dữ liệu giữ nguyên sai lệch này. Khi điều kiện chiếu sáng thay đổi, mô hình thất bại.
Generalization vì thế phụ thuộc không chỉ vào kiến trúc mà còn vào thiết kế dữ liệu. Training set phải bao phủ biến thiên về camera, vật liệu, vị trí, ánh sáng và loại lỗi. Validation set cần phản ánh điều kiện triển khai thật thay vì chỉ là một phần ngẫu nhiên của cùng một lô dữ liệu. Weight decay, dropout, data augmentation và early stopping hỗ trợ regularization, nhưng không thay thế được dữ liệu đại diện.
ANN cũng không tự bảo đảm học quan hệ nhân quả hoặc quy luật vật lý. Mạng tối ưu những tương quan giúp giảm loss. Nếu một tín hiệu phụ dễ học hơn dấu hiệu thật, gradient vẫn có thể hướng mạng đến tín hiệu phụ đó. Hidden representation mạnh không đồng nghĩa với representation đúng theo cách con người mong muốn.
Ngoài ra, dự đoán xác suất của mạng không mặc nhiên là uncertainty đã được hiệu chuẩn. Một mô hình có thể rất tự tin trên dữ liệu ngoài phân bố huấn luyện. Số tham số lớn làm tăng năng lực nhưng cũng tăng chi phí bộ nhớ, năng lượng và nhu cầu dữ liệu. Quá trình tối ưu phi lồi nhạy với initialization, learning rate và nhiều lựa chọn thiết kế khác.
Những giới hạn này không làm mất giá trị của ANN; chúng xác định cách sử dụng mạng một cách đúng đắn. Từ neuron đơn đến mạng sâu, mô hình ngày càng có nhiều khả năng tự tạo representation. Cùng lúc đó, trách nhiệm của người thiết kế chuyển từ việc viết từng đặc trưng sang việc xây dữ liệu, kiến trúc, objective và quy trình đánh giá để representation được học theo hướng có ích.
Mạch phát triển của ANN vì thế có thể được nhìn như một chuỗi câu hỏi liên tục. Một neuron kết hợp tín hiệu như thế nào? Perceptron học ranh giới từ lỗi ra sao? Tầng ẩn biến đổi dữ liệu thế nào khi một ranh giới không đủ? Backpropagation phân phối lỗi qua nhiều tầng bằng cách nào? Độ sâu giúp representation có cấu trúc gì, và vì sao mạng sâu lại khó huấn luyện? Deep learning xuất hiện khi các câu trả lời này được ghép thành một hệ thống có thể học trực tiếp từ dữ liệu quy mô lớn.