What is1./(1+exp(-z)), (z can be a matrix ) and how is it different from 1/(1+exp(-z))?

댓글 수: 2

The second version is a little bit strange, although without formal errors. The thing is that exp(-z) is per-element, i.e., it computes the matrix, whose every element is the exponent of the corresponding element of the initial matrix, while the operation / computes the matrix inversion. If you want all the operations to be done in the sense of the matrix algebra, you should use expm(-z). The first version is totally per-element, hence, it looks quite consistent.

댓글을 달려면 로그인하십시오.

 채택된 답변

KALYAN ACHARJYA
KALYAN ACHARJYA 2019년 12월 30일

1 개 추천

First one: 1./(1+exp(-z)), have you noticed {dot} before division sign, it represents the dot array operation (element wise), lets say matrix A & B,
>> a=magic(3);
>> b=rand(3,3);
>> a*b % Matrix operation
ans =
8.1855 8.5246 8.5199
7.8620 6.5847 10.2725
11.6650 9.5398 7.9509
>> a.*b % Array element wise operation
ans =
6.5178 0.9134 1.6710
2.7174 3.1618 3.8282
0.5079 0.8779 1.9150
Please do read the above link referred by Stephen Cobeldick
So the expression 1./(1+exp(-z)), there is no issue considering z may have any matrix.
>> z=rand(4,4) % random z considered
z =
0.9649 0.4854 0.9157 0.0357
0.1576 0.8003 0.7922 0.8491
0.9706 0.1419 0.9595 0.9340
0.9572 0.4218 0.6557 0.6787
>> result=1./(1+exp(-z))
result =
0.7241 0.6190 0.7142 0.5089
0.5393 0.6900 0.6883 0.7004
0.7252 0.5354 0.7230 0.7179
0.7226 0.6039 0.6583 0.6635
Second one: 1/(1+exp(-z))
The denominator 1+exp(-z) have no issue, considering z as a arbitary matrix, but when a scalar divided by matrix (vector), I don't think is there any direct approach. Read this thread, about "What's the meaning of a scalar divided by a vector" because 1 as numerator is scalar on the other hand denominator 1+exp(-z) is a vector.
In Matlab it shows the error related to dimention mismatch
>> result=1/(1+exp(-z))
Error using /
Matrix dimensions must agree.
Hope this helps to clear your doubt.

댓글 수: 1

Indeed, 1/... does not work as a matrix operation. To get it in the matrix sense, it must be either (1+expm(-z))^(-1) or inv(1+expm(-z)), and these expressions only make sense for square well-conditioned matrices. For some related purposes, the pseudoinversion pinv or the left division \ can be used.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by