building your first deep neural network -modeling probabilities and nonlinearities (part 4)

What is an activation function?

An activation function is a function applied to the neurons in a layer during prediction. This should seem very familiar, because you’ve been using an activation function called relu (shown here in the three-layer neural network). The relu function had the effect of turning all negative numbers to 0. Oversimplified, an activation function is any function that can take one number and return another number. But there are an infinite number of functions in the universe, and not all them are useful as activation functions.

hàm số “activation” là một hàm số áp dụng vào các neuron trong một lớp trong quá trình suy đoán kết quả. Điều này có lẽ sẽ quen thuộc với bạn, khi bạn đã sử dụng hàm “activation” (ở những phần trước) gọi là relu. Tác động của hàm relu đó là khiến cho tất cả các số âm trở thành 0. Nói một cách tối giản, hàm số “activation” là bất kì hàm số nào nhận vào một số và trả về một số khác. Nhưng có vô số hàm số và không phải tất cả chúng đều là những hàm “activation” hữu dụng

Standard hidden-layer activation functions

sigmoid is the bread-and-butter activation

sigmoid is great because it smoothly squishes the infinite amount of input to an output between 0 and 1. In many circumstances, this lets you interpret the output of any individual neuron as a probability. Thus, people use this nonlinearity both in hidden layers and output layers.

sigmoid là một hàm số thú vị vì nó giúp nén số lượng vô hạn của đầu vào thành dữ liệu đầu ra từ 0 đến 1. Trong rất nhiều trường hợp, điều này cho phép dùng mạng neuron để mô phỏng xác suất. Do đó, người dùng hàm phi tuyến này ở lớp ẩn và lớp đầu ra

The formula of sigmoid function:

Tanh is better than sigmoid for hidden layers

Here’s the cool thing about tanh. Remember modeling selective correlation? Well, sigmoid gives varying degrees of positive correlation. That’s nice. tanh is the same as sigmoid except it’s between –1 and 1! This means it can also throw in some negative correlation. Although it isn’t that useful for output layers (unless the data you’re predicting goes between –1 and 1), this aspect of negative correlation is powerful for hidden layers; on many problems, tanh will outperform sigmoid in hidden layers.

sigmoid sẽ cho cho ra mức độ tương quan với hệ số dưng. tanh tương tự như sigmoid nhưng nó sẽ mô phỏng mức độ tương quan từ -1 đến 1. Điều này có nghĩa là nó sẽ cho phép có hệ số tương quan âm. mặc dù điều này không thật sự hữu ích đối với lớp dữ liệu đầu ra nhưng trong nhiều bài toán tanh rất hữu ích ở những lớp ẩn

The formula of tanh function:

Standard output layer activation functions

Choosing the best one depends on what you’re trying to predict

It turns out that what’s best for hidden-layer activation functions can be quite different from what’s best for output-layer activation functions, especially when it comes to classification. Broadly speaking, there are three major types of output layer.

lựa chọn tốt nhất cho hàm “activation” ở lớp ẩn có lẽ sẽ khác với lựa chọn tôt nhất cho hàm “activation” ở lớp output; đặc biệt là ở những bài toán phân loại. Nói rộng ra, có ba loại đầu ra chính

Predicting raw data values

This is perhaps the most straightforward but least common type of output layer. In some cases, people want to train a neural network to transform one matrix of numbers into another matrix of numbers, where the range of the output (difference between lowest and highest values) is something other than a probability. One example might be predicting the average temperature in Ha Noi given the temperature in the surrounding states. The main thing to focus on here is ensuring that the output nonlinearity can predict the right answers. In this case, a sigmoid or tanh would be inappropriate because it forces every prediction to be between 0 and 1 (you want to predict any temperature, not just between 0 and 1). If I were training a network to do this prediction, I’d very likely train the network without an activation function on the output.

Đây có lẽ là trường hợp dễ nhất nhưng ít phổ biến nhất của lớp đầu ra. Ở một vài trường hợp, ta muốn huấn luyện một mạng neuron để biến đổi từ ma trận này sang ma trận khác, trong khi đó khoảng của dữ liệu đầu ra có thể lớn hơn khoảng của xác suất (0 → 1). Một ví dụ có thể là dự đoán nhiệt độ trung bình ở hà nội nếu cho biết nhiệt độ của những khu vực xung quanh. Điều chúng ta tập trung ở đây là đảm bảo tín hiệu phi tuyến đầu ra có thể dự đoán chính xác được cau trả lời. Trong trường hợp này, sigmoid và tanh sẽ không phù hợp vì chúng chỉ có thể phỏng đoán trong khoảng 0 và 1. Nếu bạn muốn huấn luyện mạng neuron làm điều này, bạn sẽ huấn luyện mạng mà không có hàm “activation” ở đầu ra

Predicting unrelated yes/no probabilities (sigmoid)

You’ll often want to make multiple binary probabilities in one neural network., predicting whether the team would win, whether there would be injuries, and the morale of the team (happy or sad) based on the input data. As an aside, when a neural network has hidden layers, predicting multiple things at once can be beneficial. Often the network will learn something when predicting one label that will be useful to one of the other labels. For example, if the network got really good at predicting whether the team would win ballgames, the same hidden layer would likely be very useful for predicting whether the team would be happy or sad. But the network might have a harder time predicting happiness or sadness without this extra signal. This tends to vary greatly from problem to problem, but it’s good to keep in mind. In these instances, it’s best to use the sigmoid activation function, because it models individual probabilities separately for each output node.

bạn thường muốn tạo ra xác suất nhị phân ở trong mạng neuron, tiên đoán liệu một đội có chiến thắng, liệu có chấn thương không dựa vào dữ liệu đầu vào. Bên cạnh đó, khi mạng neuron có lớp ẩn, tiên đoán nhiều thứ tại một thời điểm có thể sẽ hữu ích. Thông thường khi mạng neuron sẽ học được một thứ gì đó khi dự đoán một nhãn mà sẽ hữu ích cho một nhãn khác. Ví dụ, nếu mạng neuron tốt ở việc dự đoán liệu team có thể thắng được trận đấu bóng chày hay không, lớp ẩn của mạng này sẽ hữu ích cho việc dự đoán liệu team có hạnh phúc hay không. Nhưng mạng neuron sẽ khó có thể dự đoán được mức độ hạnh phúc hay buồn chán nếu không có những tín hiệu khác. Trong trường hợp này, sẽ là tốt nhất để dùng hàm số sigmoid, bởi vì nó mô phỏng những xác suất độc lập của mỗi nút đầu ra

Predicting which-one probabilities (softmax)

By far the most common use case in neural networks is predicting a single label out of many. For example, in the MNIST digit classifier, you want to predict which number is in the image. You know ahead of time that the image can’t be more than one number. You can train this network with a sigmoid activation function and declare that the highest output probability is the most likely. This will work reasonably well. But it’s far better to have an activation function that models the idea that “The more likely it’s one label, the less likely it’s any of the other labels.” Why do we like this phenomenon? Consider how weight updates are performed. Let’s say the MNIST digit classifier should predict that the image is a 9. Also say that the raw weighted sums going into the final layer (before applying an activation function) are the following values:

trường hợp phổ biến nhât là mạng neuron đoán một nhãn trong số nhiều nhãn. Ví dụ trong bộ phân loại mnist, bạn muốn tiên đoán chữ số trong hình. Bạn biết trước rằng số lượng chữ số trong hình không thể nhiều hơn 1. Bạn có thể huấn luyện mạng neuron với hàm “activation” đầu ra là sigmoid và xác định đầu ra có xác suất cao nhất là kết quả. Cách này có thể hoạt động tốt. Những tốt hơn sẽ có một hàm “activation" mô tả điều này “Nếu có xác suất rơi nhiều vào một nhãn thì sẽ có ít hơn xác suất rơi vào các nhãn còn lại”. Tại sao chúng ta lại thích hiện tượng này. Hãy xem xét trọng số được cập nhật như thế nào. Giả sử bộ phân loại MINIST nên đoán được hình ảnh là số 9. Trọng số đi đến lớp cuối cùng như sau

The network’s raw input to the last layer predicts a 0 for every node but 9, where it predicts 100. You might call this perfect. Let’s see what happens when these numbers are run through a sigmoid activation function

Tín hiệu thô ở đầu vào đến lớp cuối cùng phỏng đoán 0 cho tất cả các nút ngoài nút 9. Bạn có thể gọi điều này là hoàn hảo. Hãy xem điều gì xảy ra nếu những con số này đi qua hàm sigmoid

Strangely, the network seems less sure now: 9 is still the highest, but the network seems to think there’s a 50% chance that it could be any of the other numbers. Weird! softmax, on the other hand, interprets the input very differently

Thật kì lạ là mạng neuron có vẻ ít chắc chắn hơn: 9 vẫn là số cao nhất, nhưng mạng neuron có thể nghĩ rằng 50% cơ hội có thể là những số khác. Thật kì lạ, softmax, ngược lại lại cho một kết quả khác biệt

This looks great. Not only is 9 the highest, but the network doesn’t even suspect it’s any of the other possible MNIST digits.

Kết quả rất tuyệt, không những 9 có xác suất cao nhất mà mạng neuron còn không nghi ngờ về những chữ số mnist khác

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store