DEEP FEEDFORWORD NETWORKS và các THƯ VIỆN xử lý NGÔN NGỮ tự NHIÊN

51 65 0
DEEP FEEDFORWORD NETWORKS và các THƯ VIỆN xử lý NGÔN NGỮ tự NHIÊN

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ - ĐẠI HỌC QUỐC GIA HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN  - TIỂU LUẬN DEEP FEEDFORWORD NETWORKS VÀ CÁC THƯ VIỆN XỬ LÝ NGÔN NGỮ TỰ NHIÊN Giảng viên hướng dẫn Họ tên Lớp: Khai Phá Dữ Liệu – INT3209 PSG TS Hà Quang Thụy Mã sinh viên LỜI CẢM ƠN Toàn thể thành viên nhóm chúng em xin bày tỏ lịng biết ơn chân thành sâu sắc tới thầy Hà Quang Thụy, người tận tình bảo, hướng dẫn giúp đỡ chúng em hoàn thành tiểu luận Tồn thể thành viên nhóm xin chân thành cảm đến thành viên lớp Khai Phá Dữ Liệu – INT3209 đưa góp ý, nhận xét câu hỏi thời gian nhóm thuyết trình giúp nhóm hồn thiện tiểu luận Nhóm thực MỤC LỤC GIỚI THIỆU I GIỚI THIỆU VỀ DEEP FEEDFORWARD NETWORK .5 II VÍ DỤ: HỌC XOR III HỌC DỰA TRÊN GRADIENT 11 Hàm mát – Cost function 12 1.1 Học phân bố có điều kiều Maximum Likelihood 12 1.2 Học thống kê có điều kiện .12 Output units 13 IV 2.1 Linear units for phân bố Gausian 14 2.2 Sigmoid Units cho phân bố Bernoulli 14 2.3 Softmax Units cho phân bố Multinoulli 15 ĐƠN VỊ ẨN 16 Rectified Linear Units(ReLU) biến thể 16 Logistic sigmoid hyperbolic tangen 18 Một số đơn vị ẩn khác 19 V THIẾT KẾ KIẾN TRÚC 21 Tính chất độ sâu xấp xỉ phổ dụng 21 Xem xét kiến trúc khác 24 VI BACK-PROPAGATION VÀ CÁC THUẬT TOÁN VI PHÂN KHÁC 26 6.1 Các đờ thị tính tốn 26 6.2 Quy tắc chuỗi giải tích 28 6.3 Áp dụng đệ quy chuỗi quy tắc cho Back-Propagation .28 6.4 Sử dụng thuật toán back-propagation mạng nơ-ron nhiều lớp đầy đủ kết nối 32 6.5 Phép vi phân symbol - to – symbol 34 6.6 Back-Propagation tổng quát 35 6.7 Ví dụ : Back-Propagation cho việc huấn luyện mạng 38 6.8 Sự phức tạp 41 6.9 Đạo hàm bậc cao 41 VII CÁC GHI CHÚ 42 VIII PHÂN BÀI TÂP 45 8.1 CÁC THƯ VIỆN PHỔ BIẾN 45 8.2 LÀM QUEN VỚI MƠT SƠ TÁC VỤ XƯ LÍ NGƠN NGƯ 48 KẾT LUẬN 50 TÀI LIỆU THAM KHẢO .51 GIỚI THIỆU Các mơ hình học sâu đại cung cấp framework đầy sức mạnh cho việc học giám sát Bằng cách thêm nhiều lớp – layers thêm nhiều đơn vị (unit) lớp, mạng học sâu biểu diễn hàm phức tạp Hầu hết yêu cầu đưa vector đích biết cho biết vector đầu vào, điều thường dễ dàng cho người thực nhanh chóng, hồn tồn thực thơng qua học sâu mơ hình đủ phức tạp tập liệu dán nhãn đủ lớn Nằm sau hầu hết ứng dụng thực tiễn học sau kĩ thuật xấp xỉ hàm chứa tham số (core parametric function approximation technology) Deep Feedforward Networks mơ thế, mơ hình bản, quan trọng người học muốn bắt đầu với đường học sâu Qua kiến thức tiếp thu trình học mơn Khai Phá Dữ Liệu PGS TS Hà Quang Thụy giảng dạy dựa hai Deep Learning[1] Ian Goodfellow, Yoshua Bengio, Aaron Courville Deep Learning for Natural Language Processing Creating Neural Networks with Python[2] Palash Goyal, Sumit Pandey, Karan Jain, thông qua tiểu luận, nhóm sinh viên thực mong muốn trình bày hiểu biết mạng FeedForward thư viện xử lý ngôn ngữ tự nhiên Tiểu luận bắt đầu giới thiệu kiến thức khái niệm mạng Deep Feedforward, hay cịn gọi Multilayer Perceptrons(MLPs) Sau tiểu luận ứng dụng mạng Deep Feedforward việc học XOR Việc huấn luyện mạng Feedforward yêu cầu đưa định thiết kế tương tự mơ hình tuyến tính: lựa chọn hàm mát (cost functions), dạng đơn vị đầu (output units) thuật tốn tối ưu hóa Vì vậy, tiểu luận nêu lại sơ lược trình học dựa gradient, định thiết kế dành riêng cho Feedforward, sau tìm hiểu khái niệm liên quan đến lớp ẩn (hidden layer), yêu cầu lựa chọn hàm kích hoạt (activation functions) dùng để tính toán giá trị lớp ẩn Bên cạnh đó, tiểu luận cịn xem xét thiết kế kiến trúc mạng bao gồm lớp mạng, unit lớp, Việc học mơ hình mạng neural địi hỏi việc tính toán gradients hàm phức tạp, điều thực dựa thuật toán back-propagation Kết lại nội dung số khía cạnh lịch sử liên quan đến mạng FeedForward Bên cạnh đó, tiểu luận trình bày thêm số thư viện xử lý ngôn ngữ tự nhiên Phần tiểu luận tổ chức sau Các khái niệm mạng Feedforward giới thiệu phần I, cung cấp kiến thức thành phần Feedforward Phần II đưa ví dụ việc học XOR Phần III đề cập đến việc học dựa gradient Những kiến thức hidden unit trình bày phần IV Tiếp đó, định liên quan đến thiết kế kiến trúc thuật toán Back-propagation cung cấp phần V VI Phần VII toán tắt sơ lược khía cạnh lịch sử FeedForward phần VIII trình bày thư viện xử lý ngôn ngữ tự nhiên Phần cuối đưa kết luận tiểu luận I GIỚI THIỆU VỀ DEEP FEEDFORWARD NETWORK Deep Feedforward Networks, hay gọi Feedforward Neural Networks Multilayer Perceptrons (MLPs), mơ hình học sâu cực kì quan trọng Mục đích Feedforward Network để xấp xỉ hàm Lấy ví dụ, tốn phân loại, ánh xạ đầu vào thành nhãn phân loại Ví dụ củ thể tốn cho vay ngân hàng, để đánh giá xem giao dịch khách hàng có gian lân hay khơng, ngân hàng xây dựng mơ hình hay hàm có đầu vào thơng tin liên quan đến khách hàng nhân, thu nhập để đánh giá đến Một Feedforward Network định nghĩa học giá trị tham số để tìm hàm xấp xỉ tốt Những mơ gọi Feedforward thơng tin thơng qua bước tính toán trung gian định nghĩa cuối đưa đầu Sẽ feedback mà kết đầu node không quay trở lại trở thành đầu vào node Khi mà Feedforward Neural Network mở rộng thêm phần feedback chúng gọi Recurrent Neural Network Mạng Feedforward hình thành tảng cho nhiều ứng dụng thương mại quan trọng Lấy ví dụ, Convolutional Networks – mạng chập sử dụng cho nhận dạng đối tượng từ ảnh trường hợp cụ thể Feedforward Network Bên cạnh đó, Feedforward cịn tiền đề cho việc học Recurrent Networks mà Recurrent Networks tảng cho ứng dụng liên quan đến xử lý ngôn ngữ tự nhiên Feedforward Neural gọi mạng chúng thường biểu diễn cách kết hợp nhiều hàm khác Ví dụ, có hàm kết nối ch̃i, để hình thành Cấu trúc chuỗi cấu trúc phổ biến Neural Networks Trong trường hợp gọi lớp mạng, gọi lớp thứ 2, Chiều dài chuỗi độ sâu mơ hình Lớp cuối Neural Network gọi lớp output Trong trình huấn luyện Neural Network, cố gắng xấp xỉ giống Tập liệu huấn luận bao gồm đầu vào nhãn tương ứng Những ví dụ training định trực tiếp lớp output phải làm mỡi điểm , phải sinh giá trị mà gần với Giá trị lớp khác không định trực tiếp tập liệu huấn luyện Thuật toán học phải định làm cách để sử dụng lớp để sinh đầu mong muốn, liệu huấn luyện không mỗi lớp nên làm Bởi tập liệu huấn luyện khơng output mỗi lớp này, lớp gọi lớp ẩn Cuối cùng, mạng networks gọi neural chúng tạo cảm hứng từ khoa học thần kinh –neuroscience Mỗi lớp ẩn mạng vector Chiều lớp ẩn xác định bề rộng mơ hình Mỡi thành phần vector đóng vai trị tế bào thần kinh Thay nghĩ lớp thể hàm vector sang vector, nghĩ lớp bao gờm nhiều units đóng vai trị song song, mỡi unit thể hàm chuyển từ vector sang giá trị Mỗi unit giống tế bào thân kinh, nhận input từ nhiều đơn vị khác tính tốn giá trị Một cách để hiểu mạng feedforward bắt đầu với mơ hình tuyến tính xem xét làm để vượt qua những giới hạn mô hình Mơ hình tuyến tính, giống hời quy tuyến tính, hồi quy logistic tốt chúng hiệu với thuật tốn tối ưu lời Tuy nhiên mơ hình tuyến tính giới hạn hàm tuyến tính, mà mơ hình khơng thể hiểu sự tương tác biến đầu vào Mở rộng mơ hình tuyến tính để thể hàm khơng tuyến tính , khơng áp dụng mơ tuyến tính phải cho mà áp dụng cho đầu vào bị biến đổi , chuyển đổi khơng tuyến tính Chúng ta nghĩ tập đặc trưng mô tả hay cung cấp biểu cho Lấy ví dụ, tốn phân lớp máy vector hỗ trợ (SVM) mà lớp liệu khơng thể phân tách tuyến tính, thuật tốn SVM sử dụng hàm nhân( kernel function) để chuyển khơng gian có số chiều cao mà tập liệu phân tách tuyến tính Câu hỏi đặt sau lựa chọn Lựa chọn sử dụng generic , giống chọn vơ hạn chiều Nếu có số chiều đủ lớn, có ln có đủ khả để fit tập huấn luyện, nhiên khái quát hóa tập test thường Lựa chọn khác tự tìm cách thủ cơng Cách tiếp cận yêu cầu hàng thập kỉ người cho tác vụ khác với chuyên gia lĩnh vực khác thị giác máy tính nhận dạng giọng nói Sử dụng học sâu để học Trong cách tiếp cận này, có mơ hình Chúng ta có tham số để học từ lớp rộng lớn hàm, có tham số dùng để ánh xạ từ thành đầu mong muốn Đây ví dụ Deep Feedforward Network, với địnhn nghĩa lớp ẩn Trong cách tiếp cận này, tham số hóa cách biểu diễn sử dụng thuật tốn tối ưu hóa để tìm phù hợp II VÍ DỤ: HỌC XOR Để giúp nắm bắt tư tưởng feedforward network, bắt đầu ví dụ đầy đủ chức feedforward network tập đơn giản: học hàm XOR Hàm XOR phép tính hai số nhị phân Khi có hai số nhị phân có giá trị 1, hàm XOR trả Ngược lại, trả Hàm XOR hàm định y=f*(x) mà muốn học Mơ hình hàm y=f(x,θ), thuật toán học điều chỉnh θ để f giống f* tốt Trong ví dụ này, khơng quan tâm đến tổng quát thống kê Thứ muốn network hoạt động xác điểm X = {[0,0]⊤, [1,0]⊤, [0,1]⊤, [1,1]⊤} Chúng ta huấn luyện network điểm Thách thức khớp với training set Ta coi tốn hời quy sự dùng hàm mát bình phương trung bình sai số (MSE) Ta chọn hàm mát để đơn giản hóa ví dụ Trong thực tế, MSE hàm chi phí thích hợp cho mơ hình hóa liệu nhị phân Nhiều phương pháp phù hợp mô tả phần 6.2.2.2 Đánh giá training set, hàm mát MSE là: Bây cần phải chọn mẫu mơ hình, f(x;θ) Giả sử chọn mơ hình tuyến tính, với θ gờm w b Mơ hình ta định nghĩa: Chúng ta giảm thiểu J(θ) dạng đóng theo w b phương trình chuẩn Sau giải phương trình chuẩn, ta đạt w = b = 0.5 Mơ hình tuyến tính cho kết 0.5 điểm Tại xảy điều này? Hình 6.1 cho thấy mơ hình tuyến tính khơng có khả đại diện cho hàm XOR Gải pháp khác cho vấn đề sử dụng mô hình mà học khơng gian đặc trưng khác mơ hình tuyến tính biểu diễn lời giải Đặc biệt, ta giới thiệu feedforward network với tầng ẩn chứa hai đơn vị ẩn Xem hình 6.2, minh họa mơ hình Feedforward network có vector đơn vị ẩn h tính hàm f1(x;W,c) Giá trị đơn vị ẩn sau sử dụng làm đầu vào cho tầng thứ hai Tầng thứ hai tầng đầu network Tầng đầu mơ hình hời quy tuyến tính, áp dụng với h thay cho x trước Network bao gồm hai hàm nối với nhau, h=f1(x;W,c) y=f2(h;w,b), với mơ hình đầy đủ f(x;W,c,w,b)=f2(f1(x)) f1 nên hàm gì? Mơ hình tuyến tính phục vụ tốt, điều khiến cho ta muốn làm cho f1 tuyến tính Không may, f1 tuyến tính, tồn feedforward network hàm tuyến tính đầu vào Bỏ qua điều kiện chặn lúc này, giả sử f1(x)=W⊤x f2(h)=h⊤w Thì f(x)=x⊤Ww Chúng ta biểu diễn hàm thành f(x)=x⊤w’ với w’=Ww Thế nên, phải sử dụng hàm phi tuyến tính để mô tả đặc trưng Hầu hết neural network sử dụng phép biến đổi tịnh tiến điều khiển tham số học, theo sau hàm phi tuyến cố định gọi hàm kích hoạt Ở sử dụng chiến lược đó, bắng cách định nghĩa h=g(W⊤x+c), với W trọng số phép biến đổi tuyến tính hệ số tự c Trước đây, để mơ tả mơ hình hời quy tuyến tính, sử dụng vector trọng số đại lượng vô hướng để mô tả phép biến đổi tịnh tiến từ vector đầu vào thành đại lượng vô hướng đầu Bây giờ, mô tả phép biến đổi tuyến tính từ vector x thành vector h, vector hệ số tự cần thiết Hàm kích hoạt g thường chọn để làm hàm áp dụng cho phần tử, với hi=g(x⊤W:,i+ci) Trong neural network đại, đề xuất mặc định sử dụng rectified linear unit, viết tắt ReLU (Jarrettet al., 2009; Nair and Hinton, 2010; Glorot et al., 2011a), xác định hàm kích hoạt g(z)=max{0,z}, mơ tả hình 6.3 Hình 6.1: Giải vấn đề XOR cách học biểu diễn Các số in đậm giá trị đầu mà hàm học phải cho mỡi điểm (Hình bên trái) Mơ hình tuyến tính áp dụng trực tiếp cho đầu vào triển khai hàm XOR Khi x1 = 0, đầu mơ hình phải tăng x2 tăng Khi x1 = 1, đầu mơ hình phải giảm x2 tăng Mơ hình tuyến tính phải áp dụng giá trị hệ số cố định w2 theo x2 Mơ hình tuyến tính sử dụng giá trị x1 để thay đổi hệ số x2 khơng thể giải tốn (Hình bên phải) Trong khơng gian biến đổi biểu diễn đặc trưng trích xuất từ reural network, mơ hình tuyến tính giải tốn Trong lời giải ví dụ, hai điểm có đầu thu gọn thành điểm không gian đặc trưng Cách khác, đặc trưng phi tuyến tính ánh xạ x=[1,0]⊤ x=[0,1]⊤ thành điểm không gian đặc trưng, h=[1,0]⊤ Mơ hình tuyến tính mơ hàm tăng h1 giảm h1 Trong ví dụ này, động lực cho học không gian đặc trưng làm cho sức chứa mơ hình lớn để khớp training set Trong nhiều ứng dụng thực tế, học biểu diễn giúp mơ hình khái qt hóa Hình 6.2: Ví dụ feedforward network, vẽ theo hai kiểu khác Đặc biệt, feedforward network ta dùng để giải ví dụ XOR Nó có tầng ẩn chứa hai đơn vị (Hình bên trái) Ở kiểu này, ta vẽ mỡi đơn vị nút đờ thị Kiểu rõ ràng, với ma trận Jacobian ngược đồ thị đến x Với nút thực từ z thông qua hai đường trở lên, đơn giản việc cộng gradient từ đường khác nút Mỡi nút đờ thị G tương ứng với biến Để có tính tổng quát lớn, biểu diễn biến dạng tensor V Chúng ta giả sử mỗi biến V gắn với số hàm nhỏ sau: - get_operation( V ) : hàm trả operation để tính V, biểu diễn cạnh nối đến V đồ thị - get_consumers(V,G): hàm trả danh sách nút V đồ thị G - get_inpusts(V,G) : Hàm trả biến nút cha V đồ thị Mỗi operation op gắn với bprop operation Bprop operation tính tích ma trận Jacobian với vectơ công thức (6.47) Điều chứng tỏ thuật tốn backpropagation có tính khái qt cao Mỡi operation có trách nhiệm cho thơng tin để lan truyền ngược thông qua cạnh đồ thị mà tham gia Ví dụ dùng phép nhân ma trận để tạo biến C = AB Giả sử gradient đại lượng vô hướng z liên quan đến C cho đồ thị G Phép nhân ma trận chịu trách nhiệm cho việc định nghĩa hai luật back-propagation, mỗi luật cho đối sô đầu vào Nếu gọi phương thức bprop để yêu cầu gradient liên quan đến A cho gradient đầu G, phương thức bprop phép nhân ma trận phải có trạng thái gradient liên quan đến A cho bới GB^T Tương tự vậy, gọi phương thức bprop để yêu cầu gradient liên quan đến B, phép nhân ma trận có trách nhiệm thực bprop gradient mong muốn cho bới A^T G Bản thân thuật tốn back-propagation khơng cần phải biết quy tắc vi phân Nó cần gọi phương thức bprop với đối số cần thiết Về mặt hình thức , gọi op.bprop(inputs, X, G) phải trả : (6.54) phép thực cho quy tắc biểu diễn phương trình 6.47 Ở đây, inputs danh sách đầu vào hỗ trợ cho operation, op.f hàm mà thực operation, X đầu vào mà cần tính gradient nó, G gradient đầu Phương thức op.brop giả sử tất đầu phân biệt với nhau, chúng không thực sự phân biệt Ví dụ , truyền cho tốn tử nhân hai biến x để tính x^2 , phương thức op.bprop trả x đạo hàm hai đầu vào Thuật tốn back-propagation sau cộng hai đối số thành 2x, với tổng đạo hàm theo biến x Các phần mềm thực back-propagation thường cung cấp operation phương thức bprop , để người dùng sử dụng thư viện dễ dàng tính toán phép toán nhân ma trận, mũ, lấy logarithms ….Nếu muốn xây dựng cho phép tốn khác người dùng xây dựng thủ cơng Thuật tốn back-propagation tổng qt xây dựng thuật toán 6.5: Thuật toán 6.5 : Bộ khung chung thuật toán back-propagation Phần thực đặt đơn giản làm việc gọn gàng Phần quan trọng mô tả hàm buid_grad thuật tốn 6.6 u cầu : T, tập đích biến mà cần tính gradient Yêu cầu : G, đồ thị Yêu cầu : z , biến cần lấy vi phân Cho G’ cắt từ đồ thị G mà chứa nút tổ tiên z cháu nút T Khởi tạo grad_table, cấu trúc chứa gradient grad_table[z] ← for V in T buid_grad(V,G,G’, grad_table) end for return grad_table giới hạn T Thuật tóan 6.6 : Hàm nhỏ build_grad(V, G, G’, grad_table) vòng lặp thuật toán 6.5 Yêu cầu : V , biến mà gradient thêm vào G grad_table Yêu cầu : G , đồ thị gốc Yêu cầu : G’ , phần giới hạn đồ thị G chứa nút tham gia vào gradient Yêu cầu : grad_table , cấu trúc liệu ánh xạ nút sang gradient chúng If V is in grad_table then return grad_table[V] end if i←1 for C in get_consumers(V,G’) op ← get_operation© D ← bulid_grad(C,G,G’,grad_table) ← op.bprop(get_inputs(C,G’), V, D) i ← i+1 end for G← grad_table[V] = G insert G and operations creating it into G return G Trong phần 6.5.2 giải thích thuật tốn back-propagation phát triển để tránh việc tính toán biểu thức giống nhiều lần Thuật toán đơn giản tiêu tốn thời gian chạy theo hàm mũ lặp lại việc tính biểu thức giống Bây có thuật tốn back-propagation cụ thể , tính tốn chi phí tính tốn Giả sử phép tính tốn có chi phí, xác định chi phí tính tốn dựa số lượng phép tính thực Việc tính tốn gradient đờ thị n nút có độ phức tạp khơng vượt O(n^2) operation việc lưu lại gía trị đầu không vượt O(n^2) Ở đếm số lượng operation đồ thị , operation độc lập thực phần cứng, điều quan trọng cần nhớ thời gian thực thi mỗi operation không ổn định Ví dụ , nhân hai ma trận chứa hàng triệu giá trị tương đương operation đơn đờ thị Chúng ta thấy tính gradient yêu cầu nhiều O(n^2) operations trình forward propagation thực thi trường hợp xấu qua n nút đồ thị gốc Thuật toán back-propagation thêm tích Jacobian-vector , biểu thị với O(1) nút mỗi cạnh đồ thị gốc Vì thị tính tốn đờ thị tuần hồn có hướng với nhiều O(n^2) cạnh Với đờ thị dùng thực tế chi phí thường tốt Phần lớn hàm chi phí mạng nơ-ron có cấu trúc ch̃i phí back-propagation O(n) Cách tiếp cận tiết kiệm cách tiếp cận thơ mà chi phí thực hàm số mũ Chi phí hàm số mũ thấy viết lại luật đạo hàm đệ qui thành không đệ qui : = (6.55) Vì số lượng đường từ nút j đến nút n tăng theo hàm mũ theo độ dài đường nên số lượng số hạng phép lấy tổng tương ứng với số lượng đường tăng theo hàm mũ theo độ sâu đờ thị Chi phí lớn phải chịu việc tính tốn phải lặp lại nhiều lần Để tránh việc phải tính lại nhiều lần , nghĩ back-propagation thuật tốn điền bảng để lưu gía trị trung gian Mỗi nút đồ thị tương ứng với ô bảng để lưu giá trị gradient cho nút Bằng việc điền bảng thuật tốn backpropagation tránh việc phải tính toán lại nhiều lần biểu thức Chiến lược điền bảng gọi quy hoạch động 6.7 Ví dụ : Back-Propagation cho việc huấn luyện mạng Ở xây dựng mạng đơn giản với lớp ẩn Để huấn luyện mơ hình sử dụng minibatch stochastic gradient descent Thuật toán back-propagation sử dụng để tính gradient chi phí minibatch Cụ thể , sử dụng minibatch ví dụ từ tập huấn luyện với định dạng ma trận X vecto gắn với nhãn lớp y Mạng nơ-ron tính lớp đặc trưng ẩn H = max {0,X } Để biểu diễn cho đơn giản khơng sử dụng thiên lệch cho mơ hình Giả sử đồ thị bao gờm hàm reLu để tính max {0,Z} Dự đốn phân phối xác suất cho H Giả sử tiếp đồ thị bao gồm hàm cross_entropy để tính cross_entropy nhãn y phân phối xác suất dự đoán Kết hàm cross_entropy chi phí Tối ưu hàm cross_entropy dùng thuật tốn maximum likelihood estimation mơ hình phân lớp Tuy nhiên để làm ví dụ thực tế hơn, thêm vào số hạng regularization Tổng chi phí : J= +( +) (6.56) bao gờm cross_entropy số hạng trọng số với hệ số Đồ thị tính tốn minh họa hình 6.7.1 Đờ thị tính tốn cho gradient ví dụ đủ lớn để gây khó khăn biểu diễn Đây minh chứng cho lợi back-propagation tự động tạo gradient dễ dàng song lại thử thách lớn thực đạo hàm cách thủ công Chúng ta truy vết lại hành vi back-propagation việc nhìn đờ thị hình 6.11 Để huấn luyện tính Có hai cách để ngược từ hàm J trọng số, thứ thơng qua chi phí cross_entropy, thứ hai thơng qua chi phí phân rã trọng số Chi phí phân rã trọng số đơn giản, ln đóng góp cho gradient Hình 6.7.1 Cách cịn lại thơng qua chi phí cross_entropy thi phức tạp hơn, cho G gradient cho bới hàm cross_entropy Thuật tốn Back-Propagation cần thăm dị theo hai nhánh Trên nhánh ngắn hơn, thêm gradient , sử dụng quy tắc back-propagation cho tham số thứ hai phép nhân ma trận Nhánh lại tương ứng với chuỗi xuống dài xa dọc theo mạng Đầu tiên, thuật toán back-propagation tính = G dùng quy tắc backpropagation cho tham số đầu phép nhân ma trận Tiếp theo, hàm reLu sử dụng quy tắc back-propagation để gán cho thành phần gradient tương ứng với mục nhỏ Gọi kết tính G’ Bước cuối thuật toán sử dụng quy tắc back-propagation cho tham số thứ hai phép nhân ma trận để cộng thêm vào gradient Sau gradient tính , sử dụng thuật toán gradient descent thuật toán tối ưu khác để cập nhật tham số Với mạng nơ-ron, chi phí tính tốn ảnh hưởng chi phí việc thực nhân ma trận Trong trình foward propagation, nhân với mỗi ma trận trọng số, độ phức tạp O(w) với w số lượng trọng số Trong trình backward , thực phép nhân với ma trận chuyển vị ma trận trọng số, có độ phức tạp với bước trước Chi phí nhớ cần thuật toán để lưu đầu vào lớp ẩn phi tuyến tính Giá trị lưu kể từ bắt đầu tính toán backward trả điểm liệu Chi phí nhớ O(m ) với m số ví dụ minibatch số lớp ẩn 6.8 Sự phức tạp Những mô tả thuật toán back-propagation đơn giản so với áp dụng thực tế Chúng ta giới hạn việc định nghĩa operation hàm trả ma trận đơn Phần lớn thực phần mềm cần hỗ trợ operation mà trả nhiều ma trận đơn Ví dụ muốn tìm giá trị cực đại ma trận số nó, cách làm tốt tính hai gía trị đưa vào nhớ, thủ tục giống operation đơn có hai gái trị đầu Chúng ta khơng mơ tả cách để điều khiển việc tiêu tốn nhớ back-propagation BackPropagation thường liên quan đến việc cộng nhiều ma trận Với cách tiếp cận đơn giản, mỡi ma trận tính tốn riêng lẻ sai chúng cộng lại bước Hướng tiếp cận gây nghẽn cổ chai nhớ, để tránh tượng cần có đệm cộng gía trị ma trận tính Thực back-propagation thực tế phải xử lí nhiều kiểu liệu kiểu số thực dấu phẩy động 32-bit, 64-bit giá trị số ngun Chính sách xử lí với mỡi loại liệu thiết kế khác Một vài operation có gradient chưa định nghĩa, cần theo dấu trường hợp xác định liệu gradient yêu cầu người dùng định nghĩa chưa Có nhiều kĩ thuật để tính vi phân thực tế Trong chương mô tả công cụ tri thức quan trọng việc tính đạo hàm 6.9 Đạo hàm bâc cao Một số thư viện hỗ trợ đạo hàm bậc cao, ví dụ Theano TensorFlow Những thư viện sử dụng kiểu cấu trúc liệu để mô tả biểu thức cho phép tính đạo hàm giống sử dụng để mô tả đạo hàm hàm gốc Tức áp dụng phép vi phân symbolic cho việc tính đạo hàm Trong deep learning phải tính đạo hàm cấp hai hàm vơ hướng Thay vào đó, thường sử dụng thuộc tính ma trận Hessian Nếu có hàm f : , ma trận Hessian ma trận n*n Trong ứng dụng điển hình deep learning , n số lượng tham số mơ hình, lên đến hàng tỉ tham số Vì việc biểu diễn ma trận Hessian khơng khả thi Thay phải tính toán ma trận Hessian, hướng tiếp cận tiêu biểu deep learning sử dụng phương pháp Krylov Phương pháp Krylov tập kĩ thuật lặp cho việc biểu diễn operation giống xấp xỉ việc nghịch đảo ma trận tìm xấp xỉ vectơ riêng giá trị riêng mà không cần sử dụng phép tính phép nhân ma trận với vectơ Để sử dụng phương pháp Krylov ma trận Hessian cần tính tích ma trận Hessian H với vectơ tùy ý v Một kĩ thuật dùng tính : Hv = [ ] (6.59) Tất việc tính toán gradient biểu thức tính toán cách tự động bới thư viện thích hợp Chú ý biểu thức gradient bên tính gradient hàm biểu thức gradient bên Nếu v kết từ đờ thị tính tốn, quan trọng để rõ phần mềm tính toán vi phân tự động không nên tính vi phân thông qua đồ thị tạo v Trong việc tính toán ma trận Hessian khơng thích hợp tính toán với phép nhân vec tơ với ma trận Hessian Chỉ đơn giản tính với i = 1, …, n, vec tơ với phần tử vị trí i cịn vị trí cịn lại VII CÁC GHI CHÚ Các mạng truyền thẳng xem mạng xấp xỉ phi tuyến hiệu dựa việc sử dụng gradient descent để giảm thiểu lỗi hàm xấp xỉ Từ quan điểm này, mạng truyền thẳng đại sự tiến đỉnh cao chuỗi nhiệm vụ gần Chuỗi quy tắc dựa tảng thuật toán truyền ngược phát minh vào kỷ XVIII (Leibniz, 1676; L'Hôpital, 1696) Giải tích đại số từ lâu sử dụng để giải vấn đề tối ưu hóa dạng khép kín, gradient descent khơng giới thiệu kỹ thuật để lặp lại gần giải pháp cho vấn đề tối ưu hóa kỷ 19 (Cauchy, 1847) Bắt đầu từ năm 1940, kỹ thuật hàm xấp xỉ sử dụng để thúc đẩy mơ hình học máy perceptron Tuy nhiên, mơ hình xây dựng dựa mơ hình tuyến tính, có số nhược điểm, chẳng hạn khơng có khả tìm hiểu hàm XOR, dẫn đến phản ứng chống lại toàn phương pháp tiếp cận mạng thần kinh Việc học hàm phi tuyến đòi hỏi sự phát triển đa lớp cho mỗi perceptron phương pháp tính tốn gradient thơng qua mơ Các ứng dụng hiệu quy tắc ch̃i dựa lập trình động bắt đầu xuất năm 1960 1970, chủ yếu cho ứng dụng điều khiển (Kelley, 1960; Bryson Denham, 1961; Dreyfus, 1962; Bryson and Ho, 1969; Dreyfus, 1973) bên cạnh cịn để phân tích độ nhạy (Linnainmaa, 1976) Werbos (1981) đề xuất áp dụng kỹ thuật để đào tạo mạng thần kinh thực sự Ý tưởng cuối phát triển thực tế sau tái phát độc lập theo cách khác (LeCun, 1985; Parker, 1985; Rumelhart cộng sự, 1986a) Cuốn sách Parallel Distributed Processing trình bày kết số thí nghiệm thành công với sự truyền ngược chương (Rumelhart cộng sự, 1986b) đóng góp nhiều việc tăng độ phổ biến phương pháp truyền ngược mở đầu thời kỳ nghiên cứu mạng nơron đa lớp Những ý tưởng đưa tác giả sách đó, đặc biệt Rumelhart Hinton, xa nhiều so với sự truyền ngược Chúng bao gồm ý tưởng quan trọng khả thực tính toán số khía cạnh trung tâm nhận thức học tập, tên “chủ nghĩa kết nối” (connectionism) tầm quan trọng tư tưởng liên kết nơron Đặc biệt, ý tưởng bao gồm khái niệm biểu diễn phân tán (Hinton et al., 1986) Sau sự thành cơng q trình truyền ngược, nghiên cứu mạng thần kinh trở nên phổ biến đạt đến đỉnh điểm vào đầu năm 1990 Sau đó, kỹ thuật học máy khác trở nên phổ biến thời kỳ phục hưng học tập sâu đại bắt đầu vào năm 2006 Những ý tưởng cốt lõi đằng sau mạng truyền thẳng đại khơng có thay đổi đáng kể kể từ năm 1980 Các thuật toán truyền ngược phương pháp tiếp cận gradient descent sử dụng Hầu hết cải tiến hoạt động mạng thần kinh từ năm 1986 đến năm 2015 hai yếu tố Đầu tiên, liệu lớn giảm mức độ tổng quát hóa thống kê thách thức mạng thần kinh Thứ hai, mạng thần kinh trở nên lớn nhiều, máy tính mạnh sở hạ tầng phần mềm tốt Một số thay đổi thuật tốn cải thiện hiệu suất mạng thần kinh đáng ý Một thay đổi sự thay sai số bình phương trung bình với cross-entropy hàm mát Sai số bình phương trung bình phổ biến năm 1980 1990 thay cross-entropy mát Việc sử dụng cross-entropy mát cải thiện đáng kể hiệu suất mơ hình với đầu sigmoid softmax, trước bị bão hòa học chậm sử dụng sai số bình phương trung bình Một sự thay đổi thuật toán lớn khác cải thiện đáng kể hiệu suất mạng feedforward sự thay đơn vị ẩn sigmoid với đơn vị ẩn tuyến tính phần, chẳng hạn ReLU Việc sử dụng hàm g(z) = max {0, z} giới thiệu sớm Những mơ hình ban đầu khơng sử dụng ReLU mà thay vào áp dụng hàm chỉnh lưu phi tuyến(Rectified nonlinear) Dần dần bị thay sigmoids năm 1980, có lẽ sigmoids hoạt động tốt mạng thần kinh nhỏ Vào đầu năm 2000, mơ hình tránh sử dụng ReLU tính khơng khả vi số điểm Điều bắt đầu thay đổi vào khoảng năm 2009 Jarrett quan sát thấy "sử dụng chỉnh lưu phi tuyến yếu tố quan trọng việc cải thiện hiệu suất hệ thống ", số số yếu tố khác thiết kế kiến trúc mạng nơron Đối với tập liệu nhỏ, Jarrett et al (2009) quan sát thấy việc sử dụng chỉnh lưu phi tuyến chí cịn quan trọng việc học trọng số lớp ẩn Trọng số ngẫu nhiên đủ để truyền bá thông tin hữu ích thông qua mạng tuyến tính chỉnh lưu, cho phép lớp phân loại học cách ánh xạ vectơ đặc trưng khác tới lớp định danh Khi có nhiều liệu hơn, việc học bắt đầu lấy đủ kiến thức hữu ích để vượt hiệu suất tham số chọn ngẫu nhiên Glorot et al (2011a) cho thấy việc học dễ dàng nhiều mạng tuyến tính chỉnh lưu sâu so với mạng sâu có độ cong độ bão hòa hai mặt hàm kích hoạt chúng ReLU tiếp tục chứng minh ảnh hưởng khoa học thần kinh đến việc phát triển thuật toán học sâu Glorot et al (2011a) thúc đẩy ReLU từ xem xét sinh học Các phi tuyến nửa chỉnh lưu dự định để nắm bắt thuộc tính tế bào thần kinh sinh học: (1) Đối với số đầu vào, tế bào thần kinh sinh học hồn tồn khơng hoạt động (2) Đối với số đầu vào, đầu nơron sinh học tỷ lệ với đầu vào (3) Phần lớn thời gian, tế bào thần kinh sinh học chạy chế độ mà chúng khơng hoạt động hết (nghĩa chúng cần phải kích hoạt thưa thớt) Khi học sâu hời sinh bắt đầu vào năm 2006, mạng truyền thẳng tiếp tục có danh tiếng xấu Từ khoảng năm 2006 đến năm 2012, người ta tin mạng truyền thẳng không hoạt động tốt trừ chúng mơ hình khác hỡ trợ, chẳng hạn mơ hình xác suất Ngày nay, người ta biết với nguồn lực thực hành kỹ thuật phù hợp, mạng truyền thẳng hoạt động tốt Việc học dựa gradient mạng truyền thẳng sử dụng công cụ để phát triển mô hình xác suất, chẳng hạn mã hóa tự động biến thiên mạng đối kháng sinh (mạng sinh mạng sinh data giả), mô tả chương 20 Học tập dựa gradient mạng feedforward xem trọng từ năm 2012 cơng nghệ mạnh mẽ áp dụng cho nhiều nhiệm vụ học máy khác Năm 2006, cộng đồng sử dụng học không giám sát để hỡ trợ việc học có giám sát việc sử dụng học giám sát để hỗ trợ việc học không giám sát lại trở nên phổ biến Các mạng truyền thẳng tiếp tục cho ta thấy tiềm vô tận Trong tương lai, hy vọng chúng áp dụng cho nhiều tác vụ khác Những tiến thuật toán tối ưu hóa thiết kế mơ hình cải thiện hiệu suất chúng Chương mô tả chủ yếu họ mơ hình mạng thần kinh Trong chương tiếp theo, chuyển sang cách sử dụng mơ hình — cách thức chuẩn hóa huấn luyện chúng VIII PHẦN BÀI TÂP 8.1 CÁC THƯ VIỆN PHỔ BIẾN 1) NLTK NLTK thư viện phổ biến hỗ trợ làm việc với tâp từ vựng, phân loại văn bản, phân tích cấu trúc câu, Tìm từ đờng nghĩa Đưa từ dạng ngun gốc 2) TEXTBLOB TextBlob thư viện Python cho việc xử lí liệu văn bản, cung cấp api cho tác vụ xử lí ngơn ngữ gắn thẻ thành phần câu, xác định cụm danh từ, phân tích ngữ nghĩa, , phân loại, Chỉnh sửa tả dịch câu 3) SPACY SpaCy thư viện cung cấp phương thức phân tích cú pháp nhanh xác , cung cấp phương thức nhân dạng tên thực thể, SpaCy viết Cython có sẵn nhiều mơ hình huấn luyện phục vụ tác vụ xử lí ngơn ngữ 4) GENSIM Gensim thư viện quan trọng khác, thường dùng cho mơ hình topic modeling tìm văn tương đồng, gensim đăc biệt hữu dụng cho tác vụ chuyển từ sang biểu diễn khơng gian vectơ 8.2 LÀM QUEN VỚI MƠT SỚ TÁC VỤ XỬ LÍ NGƠN NGƯ 1) Sử dụng biểu thức quy để tìm đoạn văn khớp 2) Chuyển đổi từ text sang danh sách từ 3) Loại bỏ stop words 4) Tạo vectơ đếm từ câu 5) Tính điểm Tf-Idf 6) Phân loại văn KẾT LUÂN Bài tiểu luận trình bày vấn đề liên quan mạng FeedForward khái niệm mạng, đưa ví dụ minh họa, đơn vị ẩn, định thiết kế liên quan đến mạng kiến trúc mạng, lựa chọn hàm mát, biểu diễn đơn vị đầu ra, thuật toán Back-propagation khía cạnh lịch sử mạng Bên cạnh đó, tiểu luận giới thiệu số thư viện xử lý ngơn ngữ tự nhiên Trong tương lai, nhóm thực mong đợi mạng feedforward áp dụng vào nhiều tác vụ thuật toán tối ưu mộ hình thiết kế cải thiện hiệu mạng TÀI LIỆU THAM KHẢO [1] Ian Goodfellow, Yoshua Bengio, Aaron Courville Deep Learning The MIT Press, 2016 [2] Palash Goyal, Sumit Pandey, Karan Jain Deep Learning for Natural Language Processing Creating Neural Networks with Python Apress, 2018 ... VIII trình bày thư viện xử lý ngôn ngữ tự nhiên Phần cuối đưa kết luận tiểu luận I GIỚI THIỆU VỀ DEEP FEEDFORWARD NETWORK Deep Feedforward Networks, hay gọi Feedforward Neural Networks Multilayer... tiểu luận, nhóm sinh viên thư? ?c mong muốn trình bày hiểu biết mạng FeedForward thư viện xử lý ngôn ngữ tự nhiên Tiểu luận bắt đầu giới thiệu kiến thức khái niệm mạng Deep Feedforward, hay gọi... lịch sử mạng Bên cạnh đó, tiểu luận giới thiệu số thư viện xử lý ngôn ngữ tự nhiên Trong tương lai, nhóm thư? ?c mong đợi mạng feedforward áp dụng vào nhiều tác vụ thuật toán tối ưu mộ hình thiết

Ngày đăng: 23/07/2020, 20:04

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan