Xin chào và chào mừng bạn trở lại khóa học về Học sâu.
Trong hướng dẫn hôm nay, chúng ta đang nói về gradient descent.
Những gì chúng ta đã học trước đây là để một mạng nơ-ron có thể học được, điều cần xảy ra là
lan truyền ngược.
Và đó là khi sai số, sự khác biệt hoặc tổng bình phương của sự khác biệt giữa y hat và y được truyền ngược
lại thông qua mạng nơ-ron và trọng số được điều chỉnh cho phù hợp.
Vì vậy, chúng ta đã thấy điều đó và hôm nay chúng ta sẽ tìm hiểu chính xác cách điều chỉnh các trọng lượng này.
Vì vậy, chúng ta hãy xem xét.
Đây là phiên bản rất đơn giản của mạng nơ-ron, một perceptron hoặc một mạng nơ-ron truyền tiếp cấp một
lớp.
Và những gì chúng ta có thể thấy ở đây là toàn bộ quá trình này đang hoạt động trong đó chúng ta có một số giá trị đầu
vào, sau đó chúng ta có trọng số, sau đó một hàm kích hoạt được áp dụng.
Chúng tôi nhận được chiếc mũ trắng và sau đó chúng tôi so sánh nó với giá trị thực tế.
Chúng tôi tính toán hàm chi phí.
Vậy làm thế nào chúng ta có thể giảm thiểu hàm chi phí?
Những gì chúng tôi có thể làm gì về nó?
Chà, một cách tiếp cận để làm điều đó là cách tiếp cận bạo lực trong đó chúng ta chỉ cần lấy tất cả các trọng lượng khác nhau có thể
có và xem xét chúng và xem cái nào hoạt động tốt nhất.
Và những gì chúng tôi làm, chẳng hạn, chúng tôi sẽ thử, chẳng hạn như 1000 quả cân và chúng tôi thử mô
hình.
Chúng tôi sẽ nhận được một cái gì đó như thế này cho hàm chi phí.
Và đây là biểu đồ trên trục Y, bạn có hàm chi phí hoặc trục tung.
Trên trục hoành, bạn có mũ y và bởi vì bạn có thể thấy công thức là y mũ trừ y bình phương, đây
là hàm chi phí sẽ trông giống như vậy.
Và về cơ bản bạn sẽ tìm thấy cái hay nhất ở đây.
Vì vậy, cách tiếp cận rất đơn giản, rất trực quan.
Tại sao không thực hiện phương pháp vũ phu này?
Tại sao không chỉ cần thử 1000 chi phí khác nhau, hàng nghìn thông số hoặc đầu vào khác nhau cho các quả cân và xem cái nào hoạt động
tốt nhất?
Bạn sẽ tìm thấy cái tốt nhất theo cách đó.
Chà, nếu bạn chỉ có một cách để tối ưu hóa, thì cách này có thể hiệu quả.
Nhưng khi bạn tăng số lượng trọng lượng, tăng số lượng khớp thần kinh trong mạng của bạn, bạn phải đối mặt
với lời nguyền về chiều không gian.
Và vậy lời nguyền của chiều không gian là gì?
Cách tốt nhất để mô tả hoặc giải thích điều này là chỉ cần xem xét một ví dụ thực tế.
Vì vậy, hãy nhớ ví dụ này mà chúng ta đã có khi nói về cách mạng
nơ-ron thực sự hoạt động, nơi chúng tôi đang xây dựng hoặc chạy mạng nơ-ron để đánh giá thuộc tính.
Vì vậy, đây là những gì nó trông giống như khi nó được đào tạo.
Chà, khi nó chưa được huấn luyện trước đây, thì nó đã được huấn luyện trước đó.
Chúng tôi biết trọng số nào, mạng nơ-ron thực tế trông như thế này.
Đúng vậy, bởi vì chúng ta có tất cả các khớp thần kinh khác nhau có thể có và chúng ta vẫn phải tập luyện nâng cao trọng lượng.
Và ở đây chúng ta có tổng cộng 25 trọng số, vì vậy bốn lần năm trọng số ở đầu, cộng thêm năm trọng số nữa từ
lớp ẩn đến lớp đầu ra, tổng cộng là 25 trọng số.
Và hãy xem làm thế nào chúng ta có thể cưỡng bức 25 tạ.
Đó là một mạng nơ-ron rất đơn giản ngay tại đây, rất đơn giản.
Chỉ một lớp ẩn.
Và làm thế nào chúng ta có thể cưỡng bức theo cách của mình thông qua một mạng nơ-ron có kích thước như thế này?
Vâng, chúng ta hãy làm một số phép tính toán học đơn giản.
Chúng tôi có 25 quả cân.
Vì vậy, điều đó có nghĩa là nếu chúng ta có 1000 kết hợp mà chúng ta sẽ kiểm
tra cho mọi trọng lượng, thì tổng số kết hợp là 1000 với lũy thừa của 25 hoặc 1000 hoặc mười với lũy thừa của 75 kết hợp khác nhau.
Bây giờ, hãy xem Sunway làm cách nào để đạt danh hiệu siêu máy tính nhanh nhất thế giới tính đến tháng 6 năm 2016.
Làm thế nào nó sẽ tiếp cận vấn đề này?
Đúng.
Vì vậy, một số cách buộc với ánh sáng, nó trông như thế này.
Đó là cả một tòa nhà khổng lồ dành cho một siêu máy tính này.
Và nó đã đạt kỷ lục Guinness thế giới vì là siêu máy tính nhanh nhất.
Hiện tại, nó là siêu máy tính nhanh nhất thế giới.
Và Sunway Tiger Light có thể hoạt động với tốc độ 93 petaFLOPS.
Một flop là viết tắt của hoạt động nổi mỗi giây, vì vậy nó có thể thực hiện 93 đến công suất gấp 10 lần so với
công suất của 15 hoạt động trôi nổi mỗi giây.
Đó là cách so sánh nhanh chóng.
Các máy tính trung bình hiện nay chỉ thích hơn vài giga flops, v.v.
Vì vậy, giống như loại phạm vi đó ít hơn Sunway Twilight.
Vì vậy, Sunway Twilight luôn đi đầu trong lĩnh vực công nghệ.
Và giả thuyết rằng nó có thể thực hiện một, một bài kiểm tra, một sự kết hợp cho mạng nơ-ron của chúng ta trong một lần flop,
về cơ bản trong một hoạt động thả nổi.
Đó là không thể.
Điều đó không thực tế vì bạn cần nhiều phép toán nổi để kiểm tra một trọng số duy nhất trong mạng nơ-ron
của mình.
Nhưng ngay cả khi chúng ta hãy bắt đầu nó.
Hãy nói rằng nó có thể làm điều đó trong một thế giới lý tưởng.
Nó có thể làm điều đó trong một hoạt động nổi.
Nó có thể thực hiện một bài kiểm tra trên một hoạt động nổi.
Điều đó có nghĩa là nó sẽ vẫn yêu cầu 10 đến lũy thừa của 75 chia cho 93 lần, 10 thành vạch, 15 giây sắp tới,
để chạy tất cả các bài kiểm tra đó để bạo lực thông qua mạng đó.
Vì vậy, điều đó có nghĩa là một hoặc khoảng mười đến lũy thừa của 58 giây, và tương đương với
mười đối với lũy thừa của 50 năm.
Đó là một con số khổng lồ.
Đó là lâu hơn vũ trụ đã tồn tại.
Và điều đó chắc chắn sẽ không đơn giản là con số này quá lớn.
Nó chỉ chắc chắn sẽ không hiệu quả với chúng tôi trong việc tối ưu hóa của chúng tôi.
Vậy là xong.
Đây là một không không.
Ngay cả trên đèn chiếu sáng tiêu đề đường đi nắng siêu máy tính nhanh nhất thế giới.
Vì vậy, chúng tôi phải đưa ra một cách tiếp cận khác.
Làm thế nào chúng ta sẽ tìm thấy trọng lượng tối ưu?
Nhân tiện, mạng nơ-ron này của chúng tôi rất đơn giản.
Còn nếu mạng nơ-ron trông giống như thế này thì sao?
Hoặc thậm chí lớn hơn thế nữa, vậy thì, nó sẽ không xảy ra chút nào, bao giờ.
Vì vậy, phương pháp chúng ta sẽ xem xét được gọi là gradient descent.
Và bạn có thể đã nghe nói về nó rồi.
Nếu chưa, chúng ta sẽ tìm hiểu xem nó là gì ngay bây giờ.
Vì vậy, có hàm chi phí của chúng tôi và bây giờ chúng tôi sẽ xem làm thế nào chúng tôi có thể thúc đẩy để đưa ra một cách nhanh
hơn để tìm ra.
Lựa chọn tốt nhất.
Vì vậy, giả sử chúng ta bắt đầu từ đâu đó.
Bạn phải bắt đầu từ đâu đó.
Vì vậy, chúng tôi bắt đầu từ đó và từ điểm trên cùng bên trái, những gì chúng tôi sẽ làm là
chúng tôi sẽ xem xét góc độ của hàm chi phí của chúng tôi tại thời điểm đó.
Vì vậy, chúng ta sẽ chỉ về cơ bản đó là lý do tại sao nó được gọi là gradient, bởi vì bạn phải phân biệt.
Chúng ta sẽ không xem xét các phương trình toán học.
Chúng tôi sẽ cung cấp một số mẹo khi đọc thêm ở cuối bài giảng tiếp theo.
Nhưng về cơ bản bạn chỉ cần phân biệt, tìm xem độ dốc ở điểm cụ thể đó là gì và tìm xem
độ dốc là dương hay âm.
Nếu độ dốc là âm, như trong trường hợp này có nghĩa là bạn đang xuống dốc.
Vì vậy, bên phải là xuống dốc, bên trái là lên dốc.
Và từ đó nó có nghĩa là bạn cần phải đi đúng.
Về cơ bản, bạn cần phải xuống dốc và đó là những gì chúng tôi sẽ làm.
Phòng có một bước, phải không?
Quả bóng lại lăn xuống.
Điều tương tự.
Bạn tính toán độ dốc.
Lúc này độ dốc là dương, nghĩa là bên phải là lên dốc, bên trái là xuống dốc và
bạn cần phải đi sang trái và bạn lăn quả bóng xuống và một lần nữa bạn tính độ dốc và bạn lăn quả bóng sang phải.
Chúng ta bắt đầu.
Vì vậy, đó là cách bạn tìm thấy trong các thuật ngữ đơn giản, đó là cách bạn tìm thấy trọng lượng tốt nhất, tình huống tốt nhất để giảm thiểu hàm
chi phí của bạn.
Tất nhiên, nó sẽ không giống như một quả bóng.
Lăn sẽ là một kiểu tiếp cận rất ngoằn ngoèo, nhưng sẽ dễ nhớ hơn vì nhìn nó như một
quả bóng lăn sẽ thú vị hơn.
Nhưng trong thực tế, có, bạn sẽ giống như cách tiếp cận từng bước một.
Vì vậy, nó sẽ là một loại phương pháp zig zag.
Ừ.
Và cũng có rất nhiều yếu tố khác trong đó.
Có những thứ như, chẳng hạn, tại sao như tại sao nó lại đi xuống?
Tại sao nó không giống như đi qua dòng?
Vì vậy, nó có thể đã nhảy ra khỏi cái này đi lên trên thay vì đi xuống và những thứ tương tự.
Vì vậy, chúng là các thông số mà bạn có thể điều chỉnh.
Và một lần nữa, chúng tôi sẽ đề cập đến nơi bạn có thể tìm hiểu thêm về điều đó.
Và thêm vào đó, chúng tôi sẽ có điều này trong một ứng dụng thực tế, nhưng theo cách tiếp cận trực quan đơn giản nhất.
Đây là những gì đang xảy ra.
Chúng ta đang đi đến tận cùng bằng cách hiểu chúng ta cần phải đi theo con đường nào thay vì ép buộc thô
bạo thông qua hàng nghìn và hàng nghìn và hàng triệu và hàng tỷ tỷ tỷ sự kết hợp.
Chúng ta có thể chỉ đơn giản là mỗi lần xem nó ở đâu, nó dốc ở đâu.
Vì vậy, giống như bạn tưởng tượng bạn đang đứng trên một ngọn đồi, nó sẽ cảm thấy nó đi xuống theo hướng nào và nó
đi xuống theo hướng nào, bạn cứ tiếp tục đi theo hướng đó.
Bạn giống như, bạn thực hiện 50 bước theo cách đó và sau đó bạn đánh giá lại, nó sẽ đi theo hướng nào?
Đi xuống theo cách này.
Được rồi, bây giờ hãy thực hiện 50 bước hoặc ít hơn.
Hãy thực hiện 40 bước theo cách đó, vì vậy nó ngày càng ít đi khi bạn đến gần hơn.
Vì vậy, đây là một ví dụ về giảm độ dốc được áp dụng trong không gian hai chiều.
Vì vậy, đó là một ví dụ một chiều.
Ở đây chúng ta có một không gian hai chiều cho sự giảm dần gradient.
Như bạn có thể thấy, nó đang tiến gần đến mức tối thiểu và nó còn được gọi là
giảm dần độ dốc vì bạn đang giảm dần đến mức tối thiểu của hàm chi phí.
Và cuối cùng, đây là độ dốc gradient được áp dụng trong ba chiều.
Đây là những gì nó trông như thế này.
Nếu bạn chiếu nó lên hai chiều, bạn có thể thấy nó chạy ngoằn ngoèo đến mức tối thiểu.
Vậy là xong.
Đó là gốc gradient trong hướng dẫn chúng ta sẽ nói về gốc gradient ngẫu nhiên sẽ là phần tiếp theo của hướng
dẫn này và tôi mong được gặp bạn ở đó.
Và vì vậy lần sau hãy tận hưởng việc học sâu.