Bạn đã đúng khi khái niệm cơ bản về NN sâu đã không thay đổi kể từ năm 2012. Nhưng đã có nhiều cải tiến về cách thức đào tạo NN sâu giúp chúng trở nên mạnh mẽ hơn về mặt chất lượng. Ngoài ra còn có một loạt các kiến trúc có sẵn ngày nay. Tôi đã liệt kê một số phát triển kể từ năm 2012, được nhóm theo các cải tiến đào tạo và cải tiến kiến trúc:
Phần cứng : Thay đổi rõ ràng nhất chỉ là sự tiến bộ không thể chối cãi của định luật Moore. Có nhiều sức mạnh tính toán có sẵn ngày hôm nay. Điện toán đám mây cũng giúp mọi người dễ dàng đào tạo các NN lớn mà không cần phải mua một giàn khoan lớn.
Phần mềm : Phần mềm mã nguồn mở cho việc học sâu thực sự được cải thiện rất nhiều từ năm 2012. Quay trở lại năm 2012 có Theano, có thể cả Caffe. Tôi chắc chắn cũng có một số người khác. Nhưng ngày nay chúng ta cũng có TensorFlow, Torch, Paddle và CNTK, tất cả đều được hỗ trợ bởi các công ty công nghệ lớn. Điều này liên quan chặt chẽ đến điểm đạn phần cứng vì nhiều nền tảng này giúp dễ dàng đào tạo GPU, giúp tăng tốc đáng kể thời gian đào tạo.
Các chức năng kích hoạt : Việc sử dụng các chức năng kích hoạt ReLU có lẽ phổ biến hơn trong những ngày này, điều này giúp cho việc đào tạo các mạng rất sâu dễ dàng hơn. Về phía nghiên cứu, có rất nhiều chức năng kích hoạt đang được nghiên cứu, bao gồm ReLU bị rò rỉ , ReLU tham số và các đơn vị tối đa .
Các thuật toán tối ưu hóa : Có nhiều thuật toán tối ưu hóa hơn hiện nay. Adagrad và Adadelta vừa được giới thiệu lần lượt vào năm 2011 và 2012. Nhưng bây giờ chúng ta cũng có trình tối ưu hóa Adam và nó trở thành một lựa chọn rất phổ biến.
Bỏ học : Trong vài năm qua, bỏ học đã trở thành một công cụ tiêu chuẩn để thường xuyên hóa khi đào tạo mạng lưới thần kinh. Bỏ học là một hình thức tính toán không tốn kém cho các NN. Nói chung, một tập hợp các mô hình được đào tạo trên các mẫu ngẫu nhiên của bộ dữ liệu sẽ vượt trội hơn một mô hình duy nhất được đào tạo trên toàn bộ tập dữ liệu. Điều này rất khó để làm rõ ràng cho NN vì chúng rất tốn kém để đào tạo. Nhưng một hiệu ứng tương tự có thể được xấp xỉ chỉ bằng cách "tắt" các nơ-ron ngẫu nhiên trên mỗi bước. Các sơ đồ con khác nhau trong NN cuối cùng được đào tạo về các tập dữ liệu khác nhau, và do đó học được những điều khác nhau. Giống như tập hợp, điều này có xu hướng làm cho NN tổng thể mạnh mẽ hơn để vượt quá. Bỏ học là một kỹ thuật đơn giản dường như cải thiện hiệu suất trong hầu hết mọi trường hợp, vì vậy nó '
Chuẩn hóa hàng loạt : Trong một thời gian, người ta biết rằng NN đào tạo tốt nhất về dữ liệu được chuẩn hóa --- nghĩa là không có giá trị trung bình và phương sai đơn vị. Trong một mạng rất sâu, khi dữ liệu đi qua từng lớp, các đầu vào sẽ được chuyển đổi và thường sẽ trôi dạt vào một bản phân phối thiếu thuộc tính đẹp, chuẩn hóa này. Điều này làm cho việc học ở các lớp sâu hơn trở nên khó khăn hơn bởi vì, từ quan điểm của nó, đầu vào của nó không có giá trị trung bình và phương sai đơn vị bằng không. Giá trị trung bình có thể rất lớn và phương sai có thể rất nhỏ. Chuẩn hóa hàng loạt giải quyết vấn đề này bằng cách chuyển đổi các đầu vào thành một lớp để có giá trị trung bình và phương sai đơn vị bằng không. Điều này dường như rất hiệu quả trong việc đào tạo các NN rất sâu.
Lý thuyết : Cho đến gần đây, người ta đã nghĩ rằng lý do các NN sâu khó đào tạo là các thuật toán tối ưu hóa bị mắc kẹt trong cực tiểu địa phương và gặp khó khăn khi thoát ra và tìm cực tiểu toàn cầu. Trong bốn năm qua, đã có một số nghiên cứu dường như chỉ ra rằng trực giác này là sai (ví dụ: Goodfellow et al. 2014). Trong không gian tham số chiều rất cao của NN sâu, cực tiểu cục bộ có xu hướng không tệ hơn nhiều so với cực tiểu toàn cầu. Vấn đề thực sự là khi đào tạo, NN có thể tìm thấy chính mình trên một cao nguyên dài, rộng. Hơn nữa, các cao nguyên này có thể kết thúc đột ngột trong một vách đá dốc đứng. Nếu NN thực hiện các bước nhỏ, phải mất một thời gian rất dài để tìm hiểu. Nhưng nếu các bước quá lớn, nó sẽ gặp một độ dốc lớn khi chạy vào vách đá, điều này hoàn tác tất cả các công việc trước đó. (Điều này có thể tránh được với việc cắt gradient, một sự đổi mới khác sau năm 2012.)
Mạng dư : Các nhà nghiên cứu đã có thể đào tạo các mạng cực kỳ sâu (hơn 1000 lớp!) Bằng cách sử dụng các mạng dư . Ý tưởng ở đây là mỗi lớp không chỉ nhận được đầu ra từ lớp trước mà còn cả đầu vào ban đầu. Nếu được đào tạo đúng cách, điều này khuyến khích mỗi lớp học một cái gì đó khác với các lớp trước đó, để mỗi lớp bổ sung thêm thông tin.
Mạng rộng và sâu : Mạng rộng, nông có xu hướng đơn giản là ghi nhớ ánh xạ giữa đầu vào và đầu ra của chúng. Mạng lưới sâu rộng tốt hơn nhiều. Thông thường bạn muốn khái quát hóa tốt, nhưng có một số tình huống, như các hệ thống khuyến nghị, trong đó việc ghi nhớ đơn giản mà không khái quát hóa cũng rất quan trọng. Trong những trường hợp này, bạn muốn cung cấp các giải pháp tốt, thực chất khi người dùng thực hiện một truy vấn chung, nhưng các giải pháp rất chính xác khi người dùng thực hiện một truy vấn rất cụ thể. Mạng lưới rộng và sâu có thể hoàn thành nhiệm vụ này một cách độc đáo.
Máy xử lý thần kinh : Một thiếu sót của NN tái phát truyền thống (cho dù chúng là RNN tiêu chuẩn hoặc thứ gì đó tinh vi hơn như LSTM) là bộ nhớ của chúng có phần "trực quan". Họ quản lý để ghi nhớ các đầu vào trong quá khứ bằng cách lưu các kích hoạt lớp ẩn mà họ tạo ra trong tương lai. Tuy nhiên, đôi khi nó có ý nghĩa hơn để lưu trữ rõ ràng một số dữ liệu. (Đây có thể là sự khác biệt giữa việc viết số điện thoại xuống một tờ giấy so với việc nhớ rằng số đó có khoảng 7 chữ số và có một vài số 3 ở đó và có thể là một dấu gạch ở đâu đó ở giữa.) Máy Turing thần kinhlà một cách để cố gắng giải quyết vấn đề này. Ý tưởng là mạng có thể học cách cam kết rõ ràng một số sự kiện nhất định cho một ngân hàng bộ nhớ. Điều này không đơn giản để thực hiện vì thuật toán backprop yêu cầu các hàm khác nhau, nhưng cam kết một mốc thời gian cho một địa chỉ bộ nhớ là một hoạt động riêng biệt vốn có. Do đó, các máy Turing thần kinh khắc phục điều này bằng cách cam kết một chút dữ liệu cho việc phân phối các địa chỉ bộ nhớ khác nhau. Những kiến trúc này dường như chưa hoạt động tốt, nhưng ý tưởng này rất quan trọng. Một số biến thể trong số này có thể sẽ trở nên phổ biến trong tương lai.
Mạng lưới đối thủ sáng tạo : GAN là một ý tưởng rất thú vị mà dường như đang được sử dụng rất nhiều trong thực tế. Ý tưởng ở đây là đào tạo hai NN cùng một lúc: một cố gắng tạo các mẫu từ phân phối xác suất cơ bản (một trình tạo) và một cố gắng phân biệt giữa các điểm dữ liệu thực và các điểm dữ liệu giả được tạo bởi trình tạo (bộ phân biệt đối xử). Vì vậy, ví dụ, nếu tập dữ liệu của bạn là tập hợp các hình ảnh của phòng ngủ, máy phát điện sẽ cố gắng tạo ra những bức ảnh riêng về phòng ngủ và người phân biệt đối xử sẽ cố gắng tìm hiểu xem nó có nhìn vào hình ảnh thật của phòng ngủ hay hình ảnh giả của phòng ngủ. Cuối cùng, bạn có hai NN rất hữu ích: một là thực sự tốt trong việc phân loại hình ảnh là phòng ngủ hoặc không phải phòng ngủ, và một là thực sự tốt trong việc tạo ra hình ảnh thực tế của phòng ngủ.