Trực Quan Hóa Đặc Trưng

Cách mạng nơ-ron xây dựng hiểu biết của chúng về hình ảnh

Trực quan hóa đặc trưng cho phép ta thấy GoogLeNet, được huấn luyện trên ImageNet, xây dựng hiểu biết về hình ảnh qua nhiều tầng như thế nào. Trực quan hóa của tất cả channel có trong phụ lục.

Ngày càng có nhiều lý do để yêu cầu mạng nơ-ron phải diễn giải được với con người. Lĩnh vực diễn giải mạng nơ-ron ra đời từ nhu cầu đó. Khi trưởng thành, lĩnh vực này đang phát triển nhiều công cụ để nhìn vào bên trong mô hình.

Feature visualization answers questions about what a network -- or parts of a network -- are looking for by generating examples.
Attribution As a young field, neural network interpretability does not yet have standardized terminology. Attribution has gone under many different names in the literature -- including "feature visualization"! -- but recent work seems to prefer terms like "attribution" and "saliency maps". studies what part of an example is responsible for the network activating a particular way.

Bài viết này tập trung vào trực quan hóa đặc trưng. Đây là một công cụ mạnh, nhưng để dùng tốt cần nhiều chi tiết kỹ thuật. Chúng ta sẽ xem tối ưu hóa tạo hình ảnh như thế nào, vì sao nó dễ sinh nhiễu, và những thủ thuật nào làm kết quả đáng tin hơn.


Trực Quan Hóa Đặc Trưng Bằng Tối Ưu Hóa

Nói chung, mạng nơ-ron khả vi theo đầu vào. Nếu muốn biết loại đầu vào nào gây ra một hành vi nào đó, ta có thể tối ưu trực tiếp đầu vào để làm hành vi đó mạnh lên.

Bắt đầu từ nhiễu ngẫu nhiên, ta tối ưu một ảnh để kích hoạt một neuron cụ thể (layer mixed4a, unit 11).

Ý tưởng rất đơn giản, nhưng thực hành có nhiều bẫy. Phần sau sẽ đi qua các bẫy đó và những cách phổ biến để xử lý chúng.

Mục Tiêu Tối Ưu

Ta muốn ví dụ cho điều gì? Đây là câu hỏi cốt lõi, dù ta tìm ví dụ trong dataset hay tạo ví dụ bằng tối ưu hóa ảnh.

Các mục tiêu tối ưu khác nhau cho thấy những phần khác nhau của mạng đang tìm kiếm điều gì.


n là chỉ số layer; x,y là vị trí không gian; z là chỉ số kênh; k là chỉ số lớp.

Neuron
layern[x,y,z]
Channel
layern[:,:,z]
Layer/DeepDream
layern[:,:,:]2
softmax
Class Logits
pre_softmax[k]
softmax
Class Probability
softmax[k]

Nếu muốn hiểu từng đặc trưng riêng lẻ, ta có thể tìm các ví dụ làm đặc trưng đó có giá trị cao: một neuron tại vị trí cụ thể, hoặc cả một channel.

Nếu muốn hiểu toàn bộ một layer, ta có thể dùng mục tiêu kiểu DeepDream, tìm những ảnh mà layer đó thấy “thú vị”.

Với lớp đầu ra của một bộ phân loại, ta có hai lựa chọn: tối ưu logit trước softmax hoặc tối ưu xác suất sau softmax.

Những mục tiêu này mới chỉ là phần nổi. Có rất nhiều mục tiêu khác có thể thử, đặc biệt là các mục tiêu trong style transfer.

Vì Sao Trực Quan Hóa Bằng Tối Ưu?

Tối ưu hóa cho ta một đầu vào ví dụ gây ra hành vi mong muốn. Nhưng vì sao phải làm vậy? Tại sao không chỉ tìm ví dụ trong dataset?

Cách tối ưu hóa có thể giúp hiểu mô hình thật sự đang tìm gì, vì nó tách những yếu tố gây ra hành vi khỏi các yếu tố chỉ tình cờ đi kèm trong dữ liệu.

Tối ưu hóa cũng rất linh hoạt. Ta có thể hỏi một ví dụ sẽ thay đổi ra sao nếu đồng thời kích hoạt nhiều neuron, hoặc nếu đi theo một hướng bất kỳ trong không gian kích hoạt.

Ngược lại, trực quan hóa bằng tối ưu hóa cũng có thách thức lớn: cần tạo kết quả đa dạng và tránh những ảnh tối ưu hóa “lừa” mạng bằng nhiễu.


Tính Đa Dạng

Các ví dụ của ta có cho thấy toàn cảnh không? Khi tạo ví dụ bằng tối ưu hóa, đây là điều cần đặc biệt cẩn thận.

Ví dụ từ dataset có lợi thế lớn: chúng có thể đa dạng tự nhiên. Ta không chỉ thấy những ảnh kích hoạt mạnh nhất, mà còn thấy bối cảnh và biến thể thực.

Tối ưu hóa thường chỉ cho một ví dụ cực dương, và nếu cố tình, một ví dụ cực âm. Câu hỏi là liệu tối ưu hóa có thể cho nhiều ví dụ khác nhau hay không.

Tạo Đa Dạng Bằng Tối Ưu Hóa

Một đặc trưng trong mạng có thể phản hồi với rất nhiều đầu vào. Ở mức lớp, bộ phân loại chó nên nhận cả chó nhỏ lẫn chó lớn, nhiều giống và nhiều tư thế.

Một hướng khác là tìm các ví dụ đa dạng trong dataset rồi dùng chúng làm điểm khởi đầu cho tối ưu hóa.

Chúng tôi thấy có một cách rất đơn giản để tạo đa dạng: thêm một hạng đa dạng vào mục tiêu. Trong bài này, cách làm dựa trên trực giác từ style transfer.

Ở các neuron tầng thấp, hạng đa dạng có thể hé lộ nhiều mặt khác nhau của một đặc trưng.

Tối ưu hóa đơn giản
Optimization with diversity reveals four different, curvy facets. Layer mixed4a, Unit 97
Ví dụ từ dataset

Các trực quan hóa đa dạng giúp ta khoanh vùng chính xác hơn điều gì kích hoạt neuron, rồi đối chiếu dự đoán đó với ví dụ thật trong dataset.

Ví dụ, hãy xem một kết quả tối ưu hóa đơn giản.

Tối ưu hóa đơn giản. Nếu nhìn riêng lẻ, ta có thể đoán neuron này kích hoạt bởi phần trên đầu chó; nhưng các ví dụ đa dạng và dataset cho thấy câu chuyện tinh tế hơn.

Optimization with diversity. Layer mixed4a, Unit 143
Ví dụ từ dataset

Ở neuron tầng cao, đa dạng còn rõ hơn: cùng một neuron có thể phản hồi với nhiều loại đối tượng khác nhau.

Tối ưu hóa đơn giản
Tối ưu hóa với đa dạng hé lộ nhiều loại bóng khác nhau. Layer mixed5a, Unit 9
Ví dụ từ dataset

Cách đơn giản này có vài hạn chế. Áp lực làm các ví dụ khác nhau có thể tạo ra nhiễu không liên quan, và không bảo đảm ta tìm được mọi khía cạnh quan trọng.

Tính đa dạng cũng chạm tới vấn đề sâu hơn: có những neuron biểu diễn các hỗn hợp ý tưởng kỳ lạ, không tương ứng với một khái niệm con người rõ ràng.

Tối ưu hóa đơn giản
Tối ưu hóa với đa dạng cho thấy mèo, cáo, và cả xe hơi. Layer mixed4e, Unit 55
Ví dụ từ dataset

Những ví dụ như vậy gợi ý rằng neuron riêng lẻ không nhất thiết là đơn vị ngữ nghĩa đúng để hiểu mạng nơ-ron.


Tương Tác Giữa Các Neuron

Nếu neuron không phải đơn vị đúng, ta nên nhìn gì? Trong thực tế, tổ hợp neuron cùng biểu diễn ảnh. Một cách hữu ích là xem mọi hướng trong không gian kích hoạt như một đặc trưng tiềm năng.

Cách nhìn này thống nhất “neuron” và “tổ hợp neuron” thành “vector trong không gian kích hoạt”. Nó cho phép ta hỏi liệu các trục cơ sở có đặc biệt hơn các hướng khác hay không.

Szegedy và cộng sự nhận thấy các hướng ngẫu nhiên có vẻ cũng có nghĩa như hướng của neuron riêng lẻ. Các nghiên cứu sau cho thấy câu chuyện còn phụ thuộc vào layer và mô hình.

Ví dụ dataset và ví dụ tối ưu hóa cho các hướng ngẫu nhiên trong không gian kích hoạt. Các hướng ở đây được chọn thủ công vì dễ diễn giải.

Ta cũng có thể tạo hướng thú vị bằng phép toán trên neuron. Ví dụ, cộng một neuron “đen trắng” với một neuron “khảm” có thể cho ra hướng biểu diễn khái niệm kết hợp.

Tối ưu hóa đồng thời hai neuron giúp ta thấy chúng tương tác như thế nào.

Những ví dụ này cho thấy neuron cùng nhau biểu diễn hình ảnh. Ta cũng có thể nội suy giữa các neuron để quan sát quá trình chuyển đổi mượt giữa các đặc trưng.

Đây mới chỉ là điểm khởi đầu. Ta vẫn biết rất ít về cách chọn các hướng có nghĩa, hay liệu có một hệ tọa độ tốt hơn cho không gian kích hoạt hay không.


Kẻ Thù Của Trực Quan Hóa Đặc Trưng

Nếu muốn trực quan hóa đặc trưng, trực giác đầu tiên là tối ưu ảnh để neuron phát mạnh. Không may, làm vậy trực tiếp thường không hiệu quả.

Ngay cả khi chỉnh learning rate cẩn thận, kết quả vẫn có nhiễu.

Các kết quả tối ưu hóa được phóng to để thấy rõ chi tiết và artifact.


Những mẫu này giống như ảnh đang “gian lận”, tìm cách kích hoạt neuron bằng cấu trúc không xuất hiện trong ảnh thật.

Chúng ta chưa hiểu hoàn toàn vì sao các mẫu tần số cao này hình thành, nhưng convolution có stride và pooling đóng vai trò quan trọng vì chúng tạo cấu trúc bàn cờ trong gradient.

Each convolution có stride hoặc pooling creates checkerboard patterns in the gradient magnitudes when we backprop through it.

Nhiễu tần số cao cho thấy tự do của tối ưu hóa vừa hấp dẫn vừa nguy hiểm. Nếu không ràng buộc, ảnh có thể đi vào những vùng không tự nhiên nhưng vẫn kích hoạt mạng.

Phổ Của Chính Quy Hóa

Xử lý nhiễu tần số cao là một chủ đề xuyên suốt trong nghiên cứu trực quan hóa đặc trưng.

Hầu hết các bài đáng chú ý trong lĩnh vực này đều đề xuất một dạng chính quy hóa nào đó. Các kỹ thuật khác nhau đặt ra những ràng buộc khác nhau về ảnh được phép xuất hiện.

Có thể xem các phương pháp này nằm trên một phổ. Không chính quy hóa thì ảnh dễ trở thành artifact; chính quy hóa quá mạnh thì ảnh giống thật hơn nhưng có thể phản ánh tương quan đánh lừa.

Chính quy hóa yếu tránh tương quan đánh lừa, nhưng ít gắn với cách dùng thực tế hơn.
Không chính quy hóa
Tần số
Phạt
Biến đổi
Bền vững
Chính quy hóa mạnh cho ví dụ thật hơn nhưng có nguy cơ phản ánh tương quan đánh lừa.
Học được
Prior
Dataset
Examples

Erhan và cộng sự, 2009

Giới thiệu ý tưởng cốt lõi; chính quy hóa tối thiểu.

Szegedy và cộng sự, 2013

Ví dụ đối kháng; trực quan hóa bằng ví dụ trong dataset.

Mahendran & Vedaldi, 2015

Giới thiệu regularizer total variation; tái dựng đầu vào từ biểu diễn.

Nguyen và cộng sự, 2015

Khảo sát phản ví dụ; giới thiệu làm mờ ảnh.

Mordvintsev và cộng sự, 2015

Giới thiệu jitter và đa tỉ lệ; thử prior GMM cho lớp.

Øygard và cộng sự, 2015

Giới thiệu làm mờ gradient; cũng dùng jitter.

Tyka và cộng sự, 2016

Chính quy hóa bằng bilateral filter; cũng dùng jitter.

Mordvintsev và cộng sự, 2016

Chuẩn hóa tần số gradient; cũng dùng jitter.

Nguyen và cộng sự, 2016

Tham số hóa ảnh bằng bộ sinh GAN.

Nguyen và cộng sự, 2016

Dùng prior autoencoder khử nhiễu để tạo mô hình sinh.

Ba Họ Chính Quy Hóa

Hãy xem kỹ hơn ba nhóm chính quy hóa trung gian.

Phạt tần số nhắm trực tiếp vào nhiễu tần số cao. Nó có thể phạt chênh lệch giữa pixel lân cận hoặc làm giảm các thành phần tần số cao.

Một số công trình dùng kỹ thuật tương tự để giảm tần số cao trong gradient trước khi chúng tích lũy vào ảnh.

Phạt tần số nhắm trực tiếp vào nhiễu tần số cao.

Độ bền với biến đổi tìm các ví dụ vẫn kích hoạt mục tiêu mạnh ngay cả khi ảnh bị dịch, xoay, phóng to hoặc biến đổi nhẹ.

Biến đổi ngẫu nhiên ảnh trước bước tối ưu giúp triệt nhiễu.

Prior học được: các regularizer trước chỉ là heuristic đơn giản. Bước tự nhiên tiếp theo là học mô hình của dữ liệu thật và buộc ảnh tối ưu nằm gần phân phối đó.

Một cách là học bộ sinh ánh xạ từ không gian tiềm ẩn sang ảnh dữ liệu, như GAN hoặc VAE, rồi tối ưu trong không gian tiềm ẩn. Cách khác là dùng prior autoencoder.


Tiền Điều Kiện Và Tham Số Hóa


Ở phần trước, một số phương pháp giảm tần số cao trong gradient thay vì trong ảnh. Điều này không hẳn là chính quy hóa; nó thay đổi hình học của tối ưu hóa.

Biến đổi gradient như vậy là một công cụ mạnh, trong tối ưu hóa gọi là tiền điều kiện. Nó tương đương chọn một thước đo khác cho hướng xuống dốc nhất.

Làm sao chọn tiền điều kiện tốt? Một phỏng đoán hợp lý là làm dữ liệu bớt tương quan và được làm trắng. Với ảnh, điều này liên quan đến cấu trúc màu và tần số không gian.

Hãy xem các thước đo khoảng cách khác nhau thay đổi hướng xuống dốc nhất như thế nào.

Three directions of steepest descent under different notions of distance

Tất cả các hướng này đều là hướng giảm hợp lệ cho cùng mục tiêu, nhưng khác nhau rất mạnh. Tối ưu trong không gian đã khử tương quan làm giảm nhiều artifact.

Dùng hướng descent đã khử tương quan tạo ra trực quan hóa khá khác. So sánh hoàn toàn công bằng rất khó vì hyperparameter, nhưng chất lượng thường tốt hơn.

Kết hợp tiền điều kiện với độ bền biến đổi còn cải thiện chất lượng hơn nữa.

Trừ khi nói khác, các ảnh trong bài được tối ưu trong không gian đã khử tương quan cùng một bộ kỹ thuật độ bền biến đổi.

Tiền điều kiện chỉ tăng tốc đường đi đến cùng một nghiệm, hay nó cũng chính quy hóa bằng cách thay đổi nghiệm cuối? Câu trả lời thực tế là nó làm cả hai.


Kết Luận

Trực quan hóa đặc trưng đã tiến rất xa trong vài năm gần đây. Cộng đồng đã có những phương pháp có nguyên tắc để tạo hình ảnh thuyết phục và đã hiểu rõ hơn các dạng artifact.

Trong nỗ lực làm mạng nơ-ron dễ diễn giải, trực quan hóa đặc trưng là một trong những hướng hứa hẹn và phát triển nhất. Tự nó không giải quyết mọi thứ, nhưng là công cụ nền tảng.

Vẫn còn nhiều việc quan trọng: hiểu tương tác giữa neuron, tìm đơn vị ngữ nghĩa phù hợp hơn, và làm rõ mức độ mà các hình ảnh tối ưu phản ánh hành vi thật của mạng.

Tài Nguyên Bổ Sung

Phụ lục: Trực quan hóa GoogLeNet
Trực quan hóa mọi channel trong GoogLeNet

Mã nguồn: tensorflow/lucid
Hiện thực mã nguồn mở cho các kỹ thuật trong bài

Bài tiếp theo: The Building Blocks of Interpretability
Khảo sát cách kết hợp trực quan hóa đặc trưng với các kỹ thuật khác.

Lời Cảm Ơn

We are extremely grateful to Shan Carter and Ian Goodfellow. Shan gave thoughtful feedback, especially on the design of the article. Ian generously stepped in to handle the review process of this article -- we would not have been able to publish it without him.

Chúng tôi cũng biết ơn các nhận xét, ý tưởng và sự hỗ trợ của Arvind Satyanarayan, Ian Johnson, Greg Corrado, Blaise Aguera y Arcas, Katherine Ye, Michael Nielsen, Emma Pierson, Dario Amodei, Mike Tyka, Andrea Vedaldi, Ruth Fong, Jason Freidenfelds, Geoffrey Hinton, Timon Ruban, Been Kim, Martin Wattenberg, và Fernanda Viegas.

Công trình này được hỗ trợ bởi nhiều công cụ mã nguồn mở, và chúng tôi rất biết ơn điều đó. Đặc biệt, mọi thí nghiệm đều dựa trên Tensorflow.

Đóng Góp Của Tác Giả

Đóng góp về viết, diễn giải và biểu đồ. Chris phác thảo phần lớn nội dung bài viết và tạo phiên bản đầu của hầu hết biểu đồ tương tác. Ludwig tạo các biểu đồ cộng neuron, ví dụ dataset và nội suy, đồng thời tinh chỉnh các biểu đồ khác. Ludwig cũng tạo phụ lục trực quan hóa toàn bộ GoogLeNet.

Đóng góp nghiên cứu. Đóng góp kỹ thuật lớn nhất có lẽ là phần tiền điều kiện. Trong công trình trước, Alex phát hiện rằng chuẩn hóa tần số gradient có tác động rất mạnh đến trực quan hóa neuron. Chris diễn giải lại điều này như gradient descent thích nghi trong một cơ sở khác. Cùng nhau, họ thử nhiều cách tham số hóa ảnh. Tương tự, Alex ban đầu giới thiệu hạng đa dạng, còn Chris tinh chỉnh cách dùng nó. Chris thực hiện phần khảo sát nội suy giữa các neuron.

Đóng góp hạ tầng. Mọi thí nghiệm dựa trên mã do Alex viết, một phần đã được công bố trước đó. Alex, Chris và Ludwig đều đóng góp đáng kể để tinh chỉnh thành thư viện hiện tại, Lucid. Alex và Chris giới thiệu những abstraction đặc biệt quan trọng.

Thảo Luận Và Phản Biện

Review 1 - Anonymous
Review 2 - Anonymous
Review 3 - Anonymous