Tất cả những gì bạn cần biết về mạng nơ-ron: Phần 1


Trịnh Đông Trà
2 năm trước
Hữu ích 6 Chia sẻ Viết bình luận 0
Đã xem 10270

Mạng lưới thần kinh và công nghệ học tập sâu làm nền tảng cho hầu hết các ứng dụng thông minh tiên tiến hiện nay. Trong bài viết này, Tiến sĩ Sun Fei (Danfeng), một chuyên gia thuật toán cấp cao của Cục Tìm kiếm của Alibaba, sẽ cung cấp một cái nhìn tổng quan ngắn gọn về sự phát triển của mạng lưới thần kinh và thảo luận về các phương pháp mới nhất trong lĩnh vực này. Bài viết chủ yếu tập trung vào năm mục sau đây:

  • Sự phát triển của mạng lưới thần kinh
  • Mô hình cảm biến
  • Mạng nơ ron chuyển tiếp
  • Tuyên truyền ngược
  • Khái niệm cơ bản về học tập sâu

1. Sự phát triển của mạng lưới thần kinh

Trước khi chúng ta đi sâu vào sự phát triển lịch sử của mạng lưới thần kinh, trước tiên chúng ta hãy giới thiệu khái niệm về mạng lưới thần kinh. Một mạng lưới thần kinh chủ yếu là một mô hình điện toán mô phỏng hoạt động của bộ não con người ở mức độ đơn giản hóa. Kiểu mô hình này sử dụng một số lượng lớn các nơ-ron tính toán kết nối thông qua các lớp kết nối có trọng số. Mỗi lớp tế bào thần kinh có khả năng thực hiện tính toán song song quy mô lớn và truyền thông tin giữa chúng.

Dòng thời gian dưới đây cho thấy sự phát triển của mạng lưới thần kinh:

Nguồn gốc của các mạng thần kinh quay trở lại ngay cả trước khi sự phát triển của điện toán, với các mạng thần kinh đầu tiên xuất hiện vào những năm 1940. Chúng tôi sẽ đi qua một chút lịch sử để giúp mọi người hiểu rõ hơn về những điều cơ bản của mạng lưới thần kinh.

Thế hệ đầu tiên của các nơ-ron mạng nơ-ron làm việc như người xác minh. Các nhà thiết kế của các tế bào thần kinh này chỉ muốn xác nhận rằng họ có thể xây dựng các mạng lưới thần kinh để tính toán. Những mạng này không thể được sử dụng cho đào tạo hoặc học tập; họ chỉ đơn giản hoạt động như các mạch cổng logic. Đầu vào và đầu ra của họ là nhị phân và trọng lượng đã được xác định trước.

Giai đoạn thứ hai của sự phát triển mạng lưới thần kinh diễn ra vào những năm 1950 và 1960. Điều này liên quan đến công việc tinh thần của Roseblatt trên các mô hình cảm biến và công việc của Herbert về các nguyên tắc học tập.

2. Mô hình cảm biến

Các mô hình cảm biến và các mô hình nơ ron như chúng tôi đã đề cập ở trên là tương tự nhau nhưng có một số khác biệt chính. Thuật toán kích hoạt trong mô hình cảm biến có thể là thuật toán ngắt hoặc thuật toán sigmoid và đầu vào của nó có thể là một vectơ số thực thay vì các vectơ nhị phân được sử dụng bởi mô hình nơron. Không giống như mô hình nơ-ron, mô hình cảm biến có khả năng học hỏi. Tiếp theo, chúng ta sẽ nói về một số đặc điểm đặc biệt của mô hình cảm biến.

Chúng ta có thể nghĩ giá trị đầu vào (x1 ..., xn) là tọa độ trong không gian N chiều, trong khi wTx-w0 = 0 là một siêu phẳng trong không gian N chiều. Rõ ràng, nếu wTx-w0 <0, thì điểm rơi xuống dưới siêu phẳng, trong khi nếu wTx-w0> 0, thì điểm rơi trên siêu phẳng.

Mô hình cảm biến tương ứng với siêu phẳng của bộ phân loại và có khả năng tách các loại điểm khác nhau trong không gian N chiều. Nhìn vào hình dưới đây, chúng ta có thể thấy rằng mô hình cảm biến là một phân loại tuyến tính.

Mô hình cảm biến có khả năng dễ dàng thực hiện phân loại cho các hoạt động logic cơ bản như AND, OR và NOT.

Chúng ta có thể phân loại tất cả các hoạt động hợp lý thông qua mô hình cảm biến? Câu trả lời là, tất nhiên là không. Ví dụ, các hoạt động độc quyền OR rất khó phân loại thông qua một mô hình cảm biến tuyến tính duy nhất, đó là một trong những lý do chính khiến các mạng thần kinh nhanh chóng đi vào điểm thấp trong phát triển ngay sau đỉnh đầu tiên. Một số tác giả, bao gồm Minsky, đã thảo luận vấn đề này về chủ đề mô hình cảm biến. Tuy nhiên, rất nhiều người đã hiểu nhầm các tác giả về chủ đề này.

Trong thực tế, các tác giả như Minsky đã chỉ ra rằng người ta có thể thực hiện các hoạt động HOẶC độc quyền thông qua nhiều lớp mô hình cảm biến; tuy nhiên, vì thế giới học thuật thiếu các phương pháp hiệu quả để nghiên cứu các mô hình cảm biến nhiều lớp tại thời điểm đó, sự phát triển của các mạng thần kinh đã giảm xuống điểm thấp đầu tiên.

Hình dưới đây cho thấy bằng trực giác cách nhiều lớp mô hình cảm biến có thể đạt được các hoạt động HOẶC độc quyền:

3. Mạng nơ ron chuyển tiếp thức ăn

Bước vào thập niên 1980, do khả năng biểu cảm của các mạng thần kinh mô hình cảm biến bị giới hạn trong các nhiệm vụ phân loại tuyến tính, sự phát triển của các mạng thần kinh bắt đầu bước vào giai đoạn của các cảm biến đa lớp. Một mạng lưới thần kinh đa lớp cổ điển là một mạng lưới thần kinh chuyển tiếp.

Chúng ta có thể thấy trong hình bên dưới rằng nó liên quan đến một lớp đầu vào, một lớp ẩn với số lượng nút không xác định và một lớp đầu ra.

Chúng ta có thể diễn đạt bất kỳ hoạt động logic nào bằng mô hình cảm biến nhiều lớp, nhưng điều này đưa ra vấn đề học tập có trọng số giữa ba lớp. Khi xk được chuyển từ lớp đầu vào sang vkj có trọng số trên lớp ẩn và sau đó được chuyển qua một thuật toán kích hoạt như sigmoid, sau đó chúng ta có thể lấy giá trị hj tương ứng từ lớp ẩn. Tương tự như vậy, chúng ta có thể sử dụng một hoạt động tương tự để lấy giá trị nút yi từ lớp đầu ra bằng cách sử dụng giá trị hj. Để học, chúng ta cần thông tin có trọng số từ ma trận w và v để cuối cùng chúng ta có thể có được giá trị ước tính y và giá trị thực tế d.

Nếu bạn có một sự hiểu biết cơ bản về học máy, bạn sẽ hiểu lý do tại sao chúng tôi sử dụng một độ dốc giảm dần để học một mô hình. Nguyên tắc đằng sau việc áp dụng độ dốc giảm dần cho mô hình cảm biến khá đơn giản, như chúng ta có thể thấy từ hình dưới đây. Đầu tiên, chúng ta phải xác định tổn thất của mô hình.

Ví dụ sử dụng mất căn bậc hai và tìm cách thu hẹp khoảng cách giữa giá trị mô phỏng y và giá trị thực d. Để tính toán thuận tiện, trong hầu hết các tình huống, chúng tôi sử dụng mối quan hệ gốc E = 1/2 (dy) ^ 2 = 1/2 (df (x)) ^ 2.

Theo nguyên tắc giảm độ dốc, tốc độ của chu kỳ cập nhật trọng số là: wj ← wi + α (d - f (x)) f ′ (x) xi, trong đó α là tốc độ học mà chúng ta có thể điều chỉnh bằng tay.

4. Tuyên truyền ngược

Làm thế nào để chúng ta tìm hiểu tất cả các tham số trong một mạng nơ ron chuyển tiếp thức ăn đa lớp? Các tham số cho lớp trên cùng rất dễ dàng để có được. Người ta có thể đạt được các tham số bằng cách so sánh sự khác biệt giữa đầu ra giá trị ước tính và giá trị thực của mô hình tính toán và sử dụng các nguyên tắc giảm độ dốc để thu được kết quả tham số. Vấn đề xảy ra khi chúng ta cố gắng thu được các tham số từ lớp ẩn. Mặc dù chúng ta có thể tính toán đầu ra từ mô hình, chúng ta không có cách nào để biết giá trị mong đợi là gì, vì vậy chúng ta không có cách nào để đào tạo một cách hiệu quả một mạng lưới thần kinh nhiều lớp. Vấn đề này khiến các nhà nghiên cứu lo lắng trong một thời gian dài, dẫn đến việc thiếu sự phát triển của mạng lưới thần kinh sau những năm 1960.

Sau đó, vào những năm 70, một số nhà khoa học đã độc lập đưa ra ý tưởng về thuật toán lan truyền ngược. Ý tưởng cơ bản đằng sau loại thuật toán này thực sự khá đơn giản. Mặc dù tại thời điểm đó không có cách nào để cập nhật theo giá trị dự kiến ​​từ lớp ẩn, người ta có thể cập nhật trọng số giữa lớp ẩn và lớp khác thông qua các lỗi được truyền từ lớp ẩn. Khi tính toán một gradient, vì tất cả các nút trong lớp ẩn có liên quan đến nhiều nút trên lớp đầu ra, vì vậy tất cả các lớp trên các lớp trước được tích lũy và xử lý cùng nhau.

Một ưu điểm khác của lan truyền ngược là chúng ta có thể thực hiện độ dốc và trọng số của các nút trên cùng một lớp cùng một lúc vì chúng không liên quan. Chúng ta có thể diễn tả toàn bộ quá trình lan truyền ngược trong mã giả như sau:

Tiếp theo, hãy nói về một số đặc điểm khác của mạng lưới thần kinh lan truyền ngược. Một tuyên truyền ngược thực sự là một quy tắc chuỗi. Nó có thể dễ dàng khái quát bất kỳ tính toán nào có bản đồ. Theo chức năng gradient, chúng ta có thể sử dụng mạng nơ ron truyền bá để tạo ra một giải pháp tối ưu hóa cục bộ, nhưng không phải là một giải pháp tối ưu toàn cầu. Tuy nhiên, từ góc độ chung, kết quả được tạo ra bởi thuật toán lan truyền ngược thường là một giải pháp tối ưu hóa thỏa đáng. Hình dưới đây là một biểu diễn trực quan của thuật toán lan truyền ngược:

Trong hầu hết các trường hợp, một mạng nơ ron lan truyền ngược sẽ tìm thấy giá trị nhỏ nhất có thể có trong phạm vi; tuy nhiên, nếu chúng ta rời khỏi phạm vi đó, chúng ta có thể tìm thấy một giá trị thậm chí tốt hơn. Trong ứng dụng thực tế, có một số cách đơn giản và hiệu quả để giải quyết loại vấn đề này, ví dụ, chúng ta có thể thử các phương thức khởi tạo ngẫu nhiên khác nhau. Hơn nữa, trong thực tế, trong số các mô hình thường được sử dụng trong lĩnh vực học sâu hiện đại, phương pháp khởi tạo có ảnh hưởng đáng kể đến kết quả cuối cùng. Một phương pháp khác để buộc mô hình rời khỏi phạm vi được tối ưu hóa là đưa ra các tiếng ồn ngẫu nhiên trong quá trình đào tạo hoặc sử dụng thuật toán di truyền để ngăn mô hình đào tạo dừng ở vị trí tối ưu hóa không lý tưởng.

Mạng nơ-ron lan truyền ngược là một mô hình tuyệt vời của học máy và khi nói về học máy, chúng ta không thể không chú ý đến một vấn đề cơ bản thường gặp trong quá trình học máy, đó là vấn đề quá mức. Một biểu hiện phổ biến của việc sử dụng quá mức là trong quá trình đào tạo, ngay cả khi mất mô hình liên tục giảm, tổn thất và lỗi trong nhóm thử nghiệm tăng lên. Có hai phương pháp điển hình để tránh lạm dụng quá mức:

  • Dừng sớm : chúng ta có thể tách một nhóm xác nhận trước thời hạn và chạy nó chống lại nhóm đã được xác minh này trong quá trình đào tạo. Sau đó, chúng ta có thể quan sát sự mất mát của mô hình và, nếu tổn thất đã ngừng giảm trong nhóm xác minh nhưng vẫn giảm trong nhóm đào tạo, thì chúng ta có thể dừng đào tạo sớm để ngăn chặn quá mức.
  • Chính quy hóa : chúng ta có thể thêm các quy tắc cho các trọng số trong mạng lưới thần kinh. Phương pháp bỏ học, phổ biến ngày nay, liên quan đến việc thả ngẫu nhiên một số nút hoặc bên. Phương pháp này, mà chúng ta có thể coi là một hình thức chính quy, cực kỳ hiệu quả trong việc ngăn ngừa quá mức.

Mặc dù các mạng lưới thần kinh rất phổ biến trong những năm 1980, nhưng thật không may, chúng đã đi vào một điểm thấp khác trong sự phát triển vào những năm 1990. Một số yếu tố đóng góp cho điểm thấp này. Ví dụ, Support Vector Machines, một mô hình phổ biến trong những năm 1990, đã chiếm lĩnh tất cả các loại hội nghị lớn và tìm thấy ứng dụng trong nhiều lĩnh vực. Support Vector Machines có một lý thuyết học thống kê tuyệt vời và dễ hiểu bằng trực giác. Họ cũng rất hiệu quả và tạo ra kết quả gần như lý tưởng.

Trong sự thay đổi này, sự trỗi dậy của lý thuyết học thống kê đằng sau Support Vector Machines đã gây áp lực không nhỏ cho sự phát triển của mạng lưới thần kinh. Mặt khác, từ góc độ của các mạng thần kinh, mặc dù bạn có thể sử dụng các mạng lan truyền ngược để huấn luyện bất kỳ mạng thần kinh nào về mặt lý thuyết, trong ứng dụng thực tế, chúng tôi nhận thấy rằng khi số lớp trong mạng thần kinh tăng lên, thì khó khăn đào tạo mạng lưới tăng theo cấp số nhân. Ví dụ, vào đầu những năm 1990, mọi người nhận thấy rằng trong một mạng lưới thần kinh có số lượng lớp tương đối lớn, người ta thường thấy mất độ dốc hoặc nổ gradient.

Một ví dụ đơn giản về mất độ dốc, ví dụ, sẽ là nơi mỗi lớp trong mạng lưới thần kinh là một lớp cấu trúc sigmoid, do đó sự mất mát của nó trong quá trình truyền ngược được nối thành một dải sigmoid. Khi một loạt các phần tử được xâu chuỗi lại với nhau, thì nếu một trong các gradient rất nhỏ, thì gradient sẽ trở nên nhỏ hơn và nhỏ hơn. Trong thực tế, sau khi truyền một hoặc hai lớp, gradient này biến mất. Mất gradient dẫn đến các tham số trong các lớp sâu để ngừng thay đổi, làm cho rất khó để có được kết quả có ý nghĩa. Đây là một trong những lý do mà một mạng lưới thần kinh nhiều lớp có thể rất khó đào tạo.

Thế giới học thuật đã nghiên cứu vấn đề này một cách sâu sắc và đi đến kết luận rằng cách dễ nhất để xử lý nó là bằng cách thay đổi thuật toán kích hoạt. Ban đầu, chúng tôi đã thử sử dụng thuật toán kích hoạt Rectified vì thuật toán sigmoid là một phương pháp chỉ mục có thể dễ dàng đưa ra vấn đề mất độ dốc. Mặt khác, chỉnh lưu, thay thế hàm sigmoid và thay thế max (0, x). Từ hình bên dưới, chúng ta có thể thấy độ dốc cho các ước tính trên 0 là 1, điều này ngăn ngừa vấn đề biến mất độ dốc. Tuy nhiên, khi ước tính thấp hơn 0, chúng ta có thể thấy độ dốc lại bằng 0, do đó thuật toán ReLU phải không hoàn hảo. Sau đó, một số thuật toán cải tiến đã xuất hiện, bao gồm Leaky ReLU và Bộ chỉnh lưu tham số (PReLU). Khi ước tính x nhỏ hơn 0, chúng ta có thể chuyển đổi nó thành một hệ số như 0.

Với sự phát triển của mạng lưới thần kinh, sau đó chúng tôi đã đưa ra một số phương pháp giải quyết vấn đề chuyển gradient trên cấp độ cấu trúc. Ví dụ, mô hình Metamodel, LSTM và phân tích hình ảnh hiện đại sử dụng một số phương pháp liên kết lớp chéo để dễ dàng truyền bá gradient hơn.

Hãy theo dõi phần hai của bài viết này. 

Hữu ích 6 Chia sẻ Viết bình luận 0
Đã xem 10270