mô hình sinh đa tầng deep generative models

95 51 0
mô hình sinh đa tầng deep generative models

Đ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 CHƯƠNG 20: MÔ HÌNH SINH ĐA TẦNG Deep Generative Models Hà Nội – 2018 Mục lục Chương 20: Deep Generative Models (Mơ hình sinh liệu nhiều tầng) Trong chương này, chúng tơi trình bày số loại mơ hình sinh sản cụ thể xây dựng đào tạo cách sử dụng kỹ thuật trình bày chương 16–19 Tất mơ hình đại diện cho phân phối xác suất qua nhiều biến theo cách • • Một số cho phép hàm phân phối xác suất đánh giá cách rõ ràng Những người khác không cho phép đánh giá hàm phân phối xác suất, hoạt động hỗ trợ ngầm địi hỏi kiến thức nó, chẳng hạn vẽ mẫu từ phân phối Một số mơ hình mơ hình xác suất có cấu trúc mô tả dạng đồ thị yếu tố, sử dụng ngôn ngữ mô hình đồ họa trình bày chương 16 Những người khác khơng dễ dàng mơ tả theo yếu tố, dù đại diện cho phân phối xác suất 20.1 Boltzmann Machines Boltzmann Machines ban đầu giới thiệu phương pháp “ kết nối” chung để học phân bố xác suất tùy ý vector nhị phân (Fahlman et al., 1983; Ackley et al., 1985; Hinton et al., 1984; Hinton and Sejnowski, 1986) Các biến thể Boltzman machine bao gồm loại biến khác từ lâu vượt qua phổ biến gốc • Trong phần giới thiệu ngắn gọn Boltzmann machine nhị phân thảo luận vấn đề nảy sinh cố gắng đào tạo thực suy luận mô hình Chúng ta xác định Boltzman d-dimensional vector nhị phân ngẫu nhiên x ∈ {0, 1}d • Boltzmann machine mơ hình lượng (phần 16.2.4), có nghĩa xác định phân bố xác suất chung cách sử dụng hàm lượng: (20.1) • Trong đó, E(X) hàm lượng Z phân vùng đảm bảo Hàm lượng Boltzmann Machine cho bởi: E(x) = -xTUx – bTx, • (20.2) Trong đó, U ma trận “trọng số” mơ hình tham số b vector thông số chênh lệch Trong thiết lập chung máy Boltzmann, cung cấp huấn luyện ví dụ, số n-chiều Phương trình 20.1 mơ tả phân bố xác suất chung biến quan sát Trong kịch chắn khả thi, giới hạn loại tương tác biến quan sát với mô tả ma trận trọng lượng Cụ thể, có nghĩa xác suất đơn vị bật đưa mơ hình tuyến tính (hồi quy logistic) từ giá trị đơn vị khác Các mơ hình Boltzmann trở nên có hiệu lực khơng phải tất biến quan sát Trong trường hợp này, biến tiềm ẩn hoạt động tương tự nút ẩn perceptron đa lớp mơ hình tương tác bậc cao nút quan sát • Như việc thêm vào nút ẩn mạng perceptron đa lớp để chuyển đổi hồi quy logit thành kết mạng thơng qua trở thành xấp xỉ phổ quát hàm số, mơ hình Boltzmann với nút ẩn khơng cịn bị giới hạn việc mơ hình hóa mối quan hệ tuyến tính biến Thay vào đó, mơ hình Boltzmann trở thành chuyển đổi phổ quát hàm phân phối khối lượng biến rời rạc (Le Roux and Bengio, 2008) Chính thức, phân tách đơn vị x thành hai tập con: đơn vị hiển thị v đơn vị tiềm ẩn (hoặc ẩn) h Hàm lượng trở thành E(x, h) = -vTRv – vT Wh-hT Sh – bT v – cTh (20.3) Boltzmann Machine Learning Thuật toán học tập cho máy Boltzmann thường dựa khả tối đa Tất máy Boltzmann có chức phân vùng xâm nhập, đó, độ dốc khả tối đa phải xấp xỉ sử dụng kỹ thuật mô tả chương 18 Một thuộc tính thú vị máy Boltzmann đào tạo với việc học quy tắc dựa khả tối đa cập nhật cho trọng lượng cụ thể kết nối hai đơn vị phụ thuộc vào số liệu thống kê hai đơn vị đó, thu thập theo phân phối khác nhau: Pmodel (v) Pˆdata (v) Pmodel (h | v) Phần lại mạng tham gia vào việc định hình thống kê đó, trọng lượng cập nhật mà khơng biết phần lại mạng cách số liệu thống kê tạo Điều có nghĩa quy tắc học tập “cục bộ”, điều làm cho máy Boltzmann học phần có lý luận mặt sinh học • • Có thể hiểu tế bào thần kinh biến ngẫu nhiên máy Boltzmann, sợi trục Dendrites kết nối hai biến ngẫu nhiên học cách quan sát mơ hình bắn tế bào mà chúng thực chạm vào vật lý Đặc biệt, giai đoạn tích cực, hai đơn vị thường xun kích hoạt có kết nối họ tăng cường Đây ví dụ quy tắc học tập người Do Thái (Hebb, 1949) tóm tắt cách ghi nhớ "cháy với nhau, dây với nhau." Quy tắc học tập Hebbian giải thích giả thuyết lâu đời cho việc học sinh học hệ thống có liên quan ngày (Giudice et al., 2009) Các thuật tốn học tập khác sử dụng nhiều thơng tin so với số liệu thống kê địa phương dường yêu cầu đưa giả thuyết tồn nhiều máy móc • • Ví dụ, não để thực truyền lại perceptron đa lớp, cần thiết cho não để trì mạng truyền thông thứ cấp cho truyền thông tin dốc ngược qua mạng Các đề xuất triển khai đáng mặt sinh học (và xấp xỉ) việc nhân giống lại thực (Hinton, 2007a; Bengio, 2015) xác nhận, Bengio (2015) liên kết ngược lại gradient với suy luận lượng mơ hình tương tự máy Boltzmann (nhưng với biến tiềm ẩn liên tục) Pha phủ định việc học máy Boltzmann có phần khó giải thích từ quan điểm sinh học Như đề cập phần 18.2, Ngủ mơ mơt dạng pha phủ định Ý tưởng thiên suy đoán 20.2 Restricted Boltzmann Machines Được phát minh với tên harmonium (đàn đạp hơi) (Smolensky, 1986), mô hình Boltzamnn hạn chế viên gạch chung mơ hình thống kê sâu Chúng tơi mô tả ngắn gọn RBM phần 16.7.1 Ở điểm lại kiến thức trước sâu vào chi tiết RMB mơ hình thống kê kiểu đồ thị vơ hướng chưa lớp biến quan sát lớp đơn lẻ biến ẩn RBM xếp chồng (một RBM RBM khác) để tạo nên mơ hình sâu ví dụ hình 20.1 Trong đó, hình 20.1a thể cấu trúc thân RBM Nó đồ thị hai nhánh khơng có kết nối Hình 20.1: Ví dụ mơ hình xây dựng với máy Boltzmann bị hạn chế (a) Bản thân máy Boltzmann bị hạn chế mô hình đồ họa vơ hướng dựa biểu đồ hai chân, với đơn vị hiển thị phần biểu đồ đơn vị ẩn phần khác Khơng có kết nối đơn vị hiển thị, khơng có kết nối số đơn vị ẩn Thông thường, đơn vị hiển thị kết nối với đơn vị ẩn xây dựng RBM kết nối thưa thớt RBM chuyển đổi Ba mạng lưới niềm tin sâu sắc mơ hình đồ họa lai liên quan đến hướng không bị gián đoạn kết nối Giống RBM, khơng có kết nối intralayer Tuy nhiên, DBN có nhiều lớp ẩn, có kết nối đơn vị ẩn tách biệt lớp • • • Tất phân bố xác suất có điều kiện địa phương cần thiết mạng niềm tin sâu chép trực tiếp từ phân bố xác suất có điều kiện địa phương RBMs cấu thành Ngồi ra, chúng tơi đại diện cho mạng lưới niềm tin sâu sắc với đồ thị hồn tồn khơng bị gạch dưới, cần kết nối intralayer để nắm bắt phụ thuộc cha mẹ (c) Máy Boltzmann sâu đồ họa khơng chiếu mơ hình với nhiều lớp biến tiềm ẩn Giống RBM DBN, DBM thiếu kết nối intralayer Các DBM gắn liền với RBM DBN Khi khởi tạo DBM từ loạt RBM, cần thiết để sửa đổi thông số RBM chút Một số loại DBM đào tạo mà khơng cần đào tạo loạt RBMs Chúng ta bắt đầu với phiên nhị phân máy Boltzmann bị giới hạn, thấy sau có phần mở rộng cho loại đơn vị hiển thị ẩn khác Chính thức hơn, cho phép lớp quan sát bao gồm tập hợp n v biến nhị phân ngẫu nhiên mà tham chiếu chung tới vector v Chúng ta đề cập đến ẩn tiềm ẩn biến nhị phân ngẫu nhiên h Giống máy Boltzmann nói chung, máy Boltmann bị giới hạn mơ hình lượng gốc với phân bố xác suất chung xác định hàm lượng : Hàm lượng cho RMB cho bởi: Và Z Hằng số chuẩn hóa gọi Hàm phân Hoạch: Định nghĩa hàm Z cho thấy rõ ràng việc tính toán Z phương pháp đơn giản (vét cạn trường hợp tính tổng) ngốn nhiều chi phí, thuật tốn định nghĩa khơn ngoan khai thác tính quy tắc phân phối xác suất tính tốn Z nhanh Trong trường hợp mơ hình Boltzmann hạn chế, Long Servedio (2010) thức chứng minh hàm phân hoạch Z có chi phí tính tốn lớn Hàm Z bao hàm phân phối hợp chuẩn hóa P(v) tiêu tốn chi phí tính tốn để ước lượng 20.2.1 Phân phối có điều kiện Mặc dù P(v) có chi phí tính tốn lớn, cấu trúc đồ thị chia đơi RBM có tính chất đặc biệt P(h∣v) P(v∣h) nhân tử hóa tương đối đơn giản để tính tốn lấy mẫu • Sự chuyển hóa tùy thuộc vào phân bố từ phân bố chung đơn giản: • Từ điều chỉnh đơn vị nhìn thấy v; coi chúng số phân phối P(h | v) Tính chất giai thừa điều kiện P (h | v) sau từ khả để viết xác suất chung vector h sản phẩm phân phối (khơng chuẩn hóa) phần tử riêng lẻ, hj Giờ đây, vấn đề bình thường hóa phân phối hj nhị phân riêng lẻ • • Bây thể đầy đủ điều kiện lớp ẩn phân phối giai thừa: • Một dẫn xuất tương tự cho thấy điều kiện quan tâm khác chúng ta, P (v | h), phân bố giai thừa: 20.2.2 Training Restricted Boltzmann Machines Bởi RBM thừa nhận đánh giá hiệu khác biệt P˜ (v) lấy mẫu MCMC hiệu dạng lấy mẫu Gibbs khối, dễ dàng đào tạo với kỹ thuật mô tả chương 18 cho mơ hình đào tạo có chức phân vùng xâm nhập • • Điều bao gồm CD, SML (PCD), tỷ lệ phù hợp vv So với mơ hình khơng sử dụng khác học tập sâu, RBM tương đối đơn giản để đào tạo tính tốn P (h | v) xác dạng đóng Một số mơ hình sâu khác, chẳng hạn máy Boltzmann sâu, kết hợp độ khó chức phân vùng xâm nhập khó suy luận 10 PHẦN BÀI TẬP CODE ĐEMO /* * Created by SharpDevelop * User: anhmq * Date: 11/27/2018 * Time: 11:50 PM 81 * * To change this template use Tools | Options | Coding | Edit Standard Headers */ using System; using System.Collections.Generic; using System.Linq; namespace Test { class Program { public static void Main(string[] args) { var p = new Variable("p",false); var q = new Variable("q",false); var r = new Variable("r",true); Console.WriteLine("p = 0, q = 0; r = 1"); Console.WriteLine("1 Test tinh gia tri bieu thuc Logic"); Console.WriteLine("Cong thuc dau vao: !(pVq)^!(q^!p)"); var f = new And(new Not(new Or(p,q)),new Not(new And(q,new Not(p)))); Console.WriteLine("Gia tri bieu thuc: "+f.Evaluate()); Console.WriteLine(); Console.WriteLine(); Console.Write("2 chuyen qua dang chuan NNF: "); Console.WriteLine(f.ToNnf()); // Console.WriteLine("(!p ^ q) ^ !q"); 82 // var fm = new And(new And(new Not(p), q),new Not(q)); // // Console.WriteLine(fm.Evaluate()); // Console.WriteLine(fm.ToString()); // // Console.WriteLine(fm.ToCnf()); // Console.WriteLine(fm.ToNnf()); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("3 Test dang chuan Hoi: dang chuan hoi - hoi cua cac tuyen"); Console.WriteLine("Cong thuc dau vao (!p ^ q) V !q"); var fm1 = new Or(new And(new Not(p), q),new Not(q)); Console.WriteLine(fm1.Evaluate()); Console.WriteLine(fm1.ToString()); // phep hoi la phep And-^ // phép tuy?n Or-v Console.WriteLine(fm1.ToCnf()); Console.WriteLine(); Console.WriteLine(); 83 Console.WriteLine("4 Test Cay quyet dinh nhi phan"); Console.WriteLine("r^(p V !q)"); var testTree = new And(r,new Or(p,new Not(q))); var binaryDecisionTree = BinaryDecisionTree.FromFormula(testTree); // TODO: Implement Functionality Here Console.Write("Press any key to continue "); Console.ReadKey(true); } } public abstract class Formula 84 { /// /// Evaluates the formula assuming all variables have values true, false defined /// /// Returns the result of the formula after such assignment public abstract bool Evaluate(); /// /// Finds every variable in a formula /// /// Returns an IEnumerable of variables public abstract IEnumerable Variables(); /// /// Finds every literal in a formula /// /// Returns an IEnumerable of literals public abstract IEnumerable Literals(); public abstract Formula ToNnf(); public abstract Formula ToCnf(); public Formula DistributeCnf(Formula p, Formula q) { if (p is And) 85 return new And(DistributeCnf((p as And).P, q), DistributeCnf((p as And).Q, q)); if (q is And) return new And(DistributeCnf(p, (q as And).P), DistributeCnf(p, (q as And).Q)); return new Or(p, q); } } public abstract class BinaryGate : Formula { public Formula P { get; set; } public Formula Q { get; set; } protected BinaryGate(Formula p, Formula q) { P = p; Q = q; } public override IEnumerable Variables() { return P.Variables().Concat(Q.Variables()); } public override IEnumerable Literals() 86 { return P.Literals().Concat(Q.Literals()); } } /// Represents the conjunction of two formulas public class And: BinaryGate { public And(Formula p, Formula q): base(p, q) {} public override bool Evaluate() { return P.Evaluate() && Q.Evaluate(); } public override Formula ToNnf() { return new And(P.ToNnf(), Q.ToNnf()); } public override Formula ToCnf() { return new And(P.ToCnf(), Q.ToCnf()); } 87 public override string ToString() { return "(" + P + " & " + Q + ")"; } } /// /// Represents the disjunction of two formulas /// public class Or : BinaryGate { public Or(Formula p, Formula q): base(p, q) {} public override bool Evaluate() { return P.Evaluate() || Q.Evaluate(); } public override Formula ToNnf() { return new Or(P.ToNnf(), Q.ToNnf()); } public override Formula ToCnf() { 88 return DistributeCnf(P.ToCnf(), Q.ToCnf()); } public override string ToString() { return "(" + P + " | " + Q + ")"; } } public class Not : Formula { public Formula P { get; set; } public Not(Formula p) { P = p; } public override bool Evaluate() { return !P.Evaluate(); } public override IEnumerable Variables() { return new List(P.Variables()); } 89 public override Formula ToNnf() { if (P is And) return new Or(new Not((P as And).P).ToNnf(), new Not((P as And).Q).ToNnf()); if (P is Or) return new And(new Not((P as Or).P).ToNnf(), new Not((P as Or).Q).ToNnf()); if (P is Not) return (P as Not).P.ToNnf(); return this; } public override Formula ToCnf() { return this; } public override IEnumerable Literals() { return P is Variable ? new List() { this } : P.Literals(); } public override string ToString() { return "!" + P; } 90 } public class Variable : Formula { public bool Value { get; set; } public string Name { get; set; } public Variable(string name,bool value) { Value = value; Name = name; } public override bool Evaluate() { return Value; } public override IEnumerable Variables() { return new List { this }; } public override Formula ToNnf() { return this; } 91 public override Formula ToCnf() { return this; } public override IEnumerable Literals() { return new List { this }; } public override string ToString() { return Name; } } public class BinaryDecisionTree { private BinaryDecisionTree LeftChild { get; set; } private BinaryDecisionTree RightChild { get; set; } private int Value ; public int value { get { return this.Value; } set { Value = value; } } public BinaryDecisionTree() {} 92 public BinaryDecisionTree(int value) { Value = value; } public BinaryDecisionTree(int value, BinaryDecisionTree lft, BinaryDecisionTree rgt) { Value = value; LeftChild = lft; RightChild = rgt; } public static BinaryDecisionTree FromFormula(Formula f) { return TreeBuilder(f, f.Variables(), 0, ""); } private static BinaryDecisionTree TreeBuilder(Formula f, IEnumerable variables, int varIndex, string path) { if(path.Length == 3){ Console.Write(path); Console.WriteLine(""); Console.WriteLine(f.Evaluate()); } if (!string.IsNullOrEmpty(path)) variables.ElementAt(varIndex - 1).Value = path[path.Length - 1] 93 != '0'; if (varIndex == variables.Count()) return new BinaryDecisionTree(f.Evaluate() ? : 0); return new BinaryDecisionTree(varIndex, TreeBuilder(f, variables, varIndex + 1, path + "0"), TreeBuilder(f, variables, varIndex + 1, path + "1")); } } } Result test p = 0, q = 0; r = 1 Test tinh gia tri bieu thuc Logic Cong thuc dau vao: !(pVq)^!(q^!p) Gia tri bieu thuc: True chuyen qua dang chuan NNF: ((!p & !q) & (!q | p)) Test dang chuan Hoi: dang chuan hoi - hoi cua cac tuyen Cong thuc dau vao (!p ^ q) V !q True ((!p & q) | !q) 94 ((!p | !q) & (q | !q)) Test Cay quyet dinh nhi phan r^(p V !q) 000 False 001 False 010 False 011 False 100 False 101 True 110 True 111 True Press any key to continue 95 ...2 Chương 20: Deep Generative Models (Mơ hình sinh liệu nhiều tầng) Trong chương này, chúng tơi trình bày số loại mơ hình sinh sản cụ thể xây dựng đào tạo cách sử dụng... tổ tiên thơng qua phần cịn lại mơ hình để vẽ mẫu từ đơn vị Deep belief networks gây nhiều vấn đề liên quan đến mô hình có hướng mơ hình vơ hướng • Suy luận deep belief network khó kết giải thích... đánh giá chất lượng mơ hình sinh đa tầng Thuật ngữ " deep belief network " thường sử dụng khơng xác để loại mạng thần kinh sâu nào, kể mạng ngữ nghĩa biến tiềm ẩn Thuật ngữ " deep belief network

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

Từ khóa liên quan

Mục lục

  • Chương 20: Deep Generative Models (Mô hình sinh dữ liệu nhiều tầng)

    • 20.1 Boltzmann Machines

    • 20.2 Restricted Boltzmann Machines

      • 20.2.1 Phân phối có điều kiện

      • 20.2.2 Training Restricted Boltzmann Machines

      • 20.3 Deep Belief Networks

      • 20.4 Máy Boltzmann sâu

        • 20.4.1 Các tính chất đáng chú ý

        • 20.4.2 Suy diễn trường trung bình DBM

        • 20.4.3. Quá trình học các tham số của máy Boltzman sâu (DBM)

        • 20.4.4. Tiền huấn luyện theo lớp

        • 20.4.5. Huấn luyện đồng thời các máy Boltzman sâu

        • 20.5 Máy Boltzmann cho dữ liệu có giá trị thực

          • 20.5.1 Các máy Boltzmann bị hạn chế dạng Gaussian-Bernoulli

          • 20.5.2 Các mô hình không trực tiếp của hiệp phương sai có điều kiện

          • 20.6 Các máy Boltzmann chập

          • 20.7 Máy Boltzman cho đầu ra cấu trúc hoặc tuần tự

          • 20.8 Các máy Boltzman khác

          • 20.9 Lan truyền ngược bằng các phép toán ngẫu nhiên

            • 20.9.1 Lan truyền ngược bằng các phép tính ngẫu nhiêu rời rạc

            • 20.10 Các mạng sinh mẫu có hướng

              • 20.10.1 Các mạng phân phối chữ S (Sigmoid belief networks)

              • 20.10.2 Mạng sinh mẫu khả vi

              • 20.10.3 Bộ tự mã hóa biến phân

              • 20.10.4 Các mạng đối kháng sinh mẫu

              • 20.10.5 Các mạng tương hợp moment sinh mẫu

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

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

Tài liệu liên quan