sigmoid <- function(x) 1/(1 + exp(-x))
#Sample
x <- seq(-5, 5, 0.1)
library(plotly)
plot_ly(type = "scatter", mode = "lines") |>
add_trace(x = x, y = sigmoid(x), name = "Sigmoid")
tanh <- function(x) (exp(x) - exp(-x))/(exp(x) + exp(-x))
plot_ly(type = "scatter", mode = "lines") |>
add_trace(x = x, y = sigmoid(x), name = "Sigmoid") |>
add_trace(x = x, y = tanh(x), name = "Tanh")
relu <- function(x) pmax(0,x)
plot_ly(type = "scatter", mode = "lines") |>
add_trace(x = x, y = sigmoid(x), name = "Sigmoid") |>
add_trace(x = x, y = tanh(x), name = "Tanh") |>
add_trace(x = x, y = relu(x), name = "ReLU")
x=c(0.2,0.3,0.4)
w=c(0.3,0.2,0.1)
b=0.1
t=w%*%x+b
t
## [,1]
## [1,] 0.26
値は1になります
softmax <- function(y) (exp(y))/(sum(exp(y)))
y <- c(-1.0, 0.2, -1.5, 2.0)
xnames <- paste0('y', seq_along(y))
p <- softmax(y)
plot_ly(type = "bar", x = xnames, y = y, name = "入力値 y") |>
add_trace(y = p, name = "Softmax 変換後")
pmax <- sum(p)
pmax
## [1] 1
ニューロンは活性化します
y=sigmoid(t)
y
## [,1]
## [1,] 0.5646363