[ 신경망에 대한 이론 설명 ]


 로센블레트 ( 1958년 퍼셉트론 제안 )


  사람의 뇌 ---------->  컴퓨터를 이용한 지능처리


              ↓                 ↓


  생물학적 신경망내에                     인공신경망에서는

  반복적인 시그널이 발생할 때          가중치라는 것으로

  그 시그널을 기억하는 일종의          기억의 효과를 대체할 수 있음을

  학습효과 있다.                             설명했다.



  1958년 로젠블라트의  퍼셉트론  


                         반복

                          ↓

          1. 뇌 :  신호 ----->  암기



                                가중치

                                  ↓     1 (신호가 흐른다.)

          2. 인공신경망  : 신호 -----> 

                                         0 (신호가 안흐른다.)


인공신경망 기본 그림





컴퓨터            vs               뇌

          ↓                               ↓

     정보를 메모리의                    정보를 저장하는 공간이 

     특정위치에 저장                    따로 없음

                                          ↓

                                     신경세포(뉴런)의 연결관계를

                                     변경하는 방식으로 저장한다.

                                          ↓

                                     신경세포(뉴런)은 그저 다른 

                                     신경세포에서 오는 신호를 받아서

                                     자신의 신호를 내보내는 역할만 한다.



 * 뉴런의 갯수


  1. 사람 : 850억개 

  2. 고양이 ; 10억개

  3. 쥐  : 7500만개

  4. 바퀴벌레 : 몇백만개

  5. 하루살이 : 지금 현재까지 나온 최첨단 인공지능의 

                뉴런수보다 많다.




[코드]  -- > R 스크립트에 복붙 !


# 라이브러리

install.packages("neuralnet")

library(neuralnet)


# Step 1. 

# 먼저 아래의 행렬식을 R로 구현해보세요.

x <- matrix(c(1,2), nrow = 1, ncol = 2)

y <- matrix(c(1:6), nrow = 2 , ncol = 3, byrow = F)

res <- x %*% y

res



# Step 2.

x <- matrix(c(1:6), nrow = 2, ncol = 3, byrow = T)

y <- matrix(c(1:6), nrow = 3, ncol = 2, byrow = T)

res <- x %*% y

res



# Step 3.

x <- matrix(c(5, 11, 17), nrow = 1 , byrow = T)

y <- matrix(c(1:6), nrow = 3, ncol = 2)

z <- x %*% y

a <- matrix(c(1:4), nrow = 2)

z <- z %*% a

z



# Step 4. '순'전파

  # 2nd layer에서 3rd layer로 이동할 때

x <- matrix(c(5, 11, 17), nrow = 1 , byrow = T)

x <- x + c(1,2,3) # Bias 발생 각각 1, 2, 3

y <- matrix(c(1:6), nrow = 3, ncol = 2)

z <- x %*% y

z # 3nd layer의 value


  # 3nd layer에서 4th layer로 이동할 때

z <- z + c(1,2) # Bias 발생

a <- matrix(c(1:4), nrow = 2)

z <- z %*% a

z <- z + c(1,2) # Bias 발생 

z



 

#아래의 공식을 이용해서 시그모이드 함수를 R로 구현하시오

#                             1

# h(x) = ----------------------------- (비선형 함수)

#                      1 + exp(-x)




sigmoid <- function(x){

  return(1 / (1+ exp(-x)))

}


x <- c(1,2,3,4,5,6,7,8,9,10)

sigmoid(x)




반응형
Posted by JoeSung
,