DeepLearning~포세틀론 편제를 간단히 정리하고 싶습니다~
14808 단어 DeepLearning
입문
차이가 많지 않다
어쨌든 처음엔 파세프테론을 따라가자
파세프테론이 뭐예요?
퍼세프턴(perceptron)은 신경 네트워크와 진단을 연결하는 중요한 생각, 즉 알고리즘이다.
간단하게 말하면 여러 개의 신호를 수신하여 입력으로 하고 하나의 신호를 출력하는 것이다.
차단기의 출력 신호는 두 가지 값이 있다. 하나는 재생 신호이고, 다른 하나는 재생하지 않는 신호이다.
재생 신호의 경우1
, 재생 신호가 없는 경우0
로 설명합니다.
이것은 두 개의 입력 신호, 한 개의 출력 신호의 주파수 차단기의 예이다.
ニューロン
또는 ノード
라고 합니다.여기에 나타난 권한은 입력 신호가 출력 신경원으로 전송되기 전에 계산하는 데 사용된다.
w1*x1, w2*x2
이 합계가 한계값 θ
을 초과하면 출력 신호 (y) 에 입력 1
func perceptron((x1, x2): (Double, Double), (w1, w2): (Double, Double), θ: Double) -> Double {
let sum = w1*x1 + w2*x2
var y
if sum <= θ {
y = 0
} else {
y = 1
}
return y
}
단순 논리 회로
AND
x1
x2
y
0
0
0
일
0
0
0
일
0
일
일
일
두 개의 입력 신호가 1
일 때만 출력 신호는 1
이고 나머지는 0
이다.
예:func and((x1, x2): (Double, Double)) -> Double {
let w1 = 5
let w2 = 3
let θ = 7
return perceptron((x1, x2): (x1, x2), (w1, w2): (w1, w2), θ: θ)
}
이렇게 값을 주고 표의 값을 x1
과x2
에 적용하여 계산하면// x1 = 0, x2 = 0の例
let y_and = and((x1, x2): (0, 0))
// y_and = 0
나는 y
와 표의 값이 모두 일치하는지 알고 싶다.
NAND
x1
x2
y
0
0
일
일
0
일
0
일
일
일
일
0func nand((x1, x2): (Double, Double)) -> Double {
let w1 = -5
let w2 = -3
let θ = -7
return perceptron((x1, x2): (x1, x2), (w1, w2): (w1, w2), θ: θ)
}
값을 구할 때 서피스 법선의 원래 방향을 사용합니다.
OR
x1
x2
y
0
0
0
일
0
일
0
일
일
일
일
일func or((x1, x2): (Double, Double)) -> Double {
let w1 = 5
let w2 = 3
let θ = 2
return perceptron((x1, x2): (x1, x2), (w1, w2): (w1, w2), θ: θ)
}
값을 구할 때 서피스 법선의 원래 방향을 사용합니다.
편압 perceptron
방법을 살짝 변경한 코드입니다.// 変更前
func perceptron((x1, x2): (Double, Double), (w1, w2): (Double, Double), θ: Double) -> Double {
let sum = w1*x1 + w2*x2
var y
if sum <= θ {
y = 0
} else {
y = 1
}
return y
}
// 変更後
func perceptron((x1, x2): (Double, Double), (w1, w2): (Double, Double), b: Double) -> Double {
let sum = w1*x1 + w2*x2 + b
var y
if sum <= 0 {
y = 0
} else {
y = 1
}
return y
}
중요한 변화는 편차를 도입했다b
.b = -θ
.
이것은 sum
의 값이 양인지 음인지 확인할 수 있습니다.
XOR
x1
x2
y
0
0
0
일
0
일
0
일
일
일
일
0y
,w1
,w2
,b
방법을 제시해도 이 정도는 할 수 없다.
다층 브로콜리
아까 XOR가 못했어요.
하지만 파세프트론은 하나뿐만 아니라 여러 개도 연결할 수 있다.func xor((x1, x2): (Double, Double)) -> Double {
let y_nand = nand((x1, x2): (x1, x2))
let y_or = or((x1, x2): (x1, x2))
let y_and = and((x1, x2): (y_nand, y_or))
return y_and
}
이렇게 하면 파세프트롱을 조합하여 실현할 수 있다.xor((x1, x2): (0, 0)) // 0
xor((x1, x2): (1, 0)) // 1
xor((x1, x2): (0, 1)) // 1
xor((x1, x2): (1, 1)) // 0
시험해 보니 모든 출력이 표와 같다.
XOR의 처리는 그림과 같습니다.
2층이 있어서 perceptron
라고 불린다.
Reference
이 문제에 관하여(DeepLearning~포세틀론 편제를 간단히 정리하고 싶습니다~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hmhmsh/items/d9d6366a38acee2f85e6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
func and((x1, x2): (Double, Double)) -> Double {
let w1 = 5
let w2 = 3
let θ = 7
return perceptron((x1, x2): (x1, x2), (w1, w2): (w1, w2), θ: θ)
}
// x1 = 0, x2 = 0の例
let y_and = and((x1, x2): (0, 0))
// y_and = 0
func nand((x1, x2): (Double, Double)) -> Double {
let w1 = -5
let w2 = -3
let θ = -7
return perceptron((x1, x2): (x1, x2), (w1, w2): (w1, w2), θ: θ)
}
func or((x1, x2): (Double, Double)) -> Double {
let w1 = 5
let w2 = 3
let θ = 2
return perceptron((x1, x2): (x1, x2), (w1, w2): (w1, w2), θ: θ)
}
perceptron
방법을 살짝 변경한 코드입니다.// 変更前
func perceptron((x1, x2): (Double, Double), (w1, w2): (Double, Double), θ: Double) -> Double {
let sum = w1*x1 + w2*x2
var y
if sum <= θ {
y = 0
} else {
y = 1
}
return y
}
// 変更後
func perceptron((x1, x2): (Double, Double), (w1, w2): (Double, Double), b: Double) -> Double {
let sum = w1*x1 + w2*x2 + b
var y
if sum <= 0 {
y = 0
} else {
y = 1
}
return y
}
중요한 변화는 편차를 도입했다b
.b = -θ
.이것은
sum
의 값이 양인지 음인지 확인할 수 있습니다.XOR
x1
x2
y
0
0
0
일
0
일
0
일
일
일
일
0y
,w1
,w2
,b
방법을 제시해도 이 정도는 할 수 없다.
다층 브로콜리
아까 XOR가 못했어요.
하지만 파세프트론은 하나뿐만 아니라 여러 개도 연결할 수 있다.func xor((x1, x2): (Double, Double)) -> Double {
let y_nand = nand((x1, x2): (x1, x2))
let y_or = or((x1, x2): (x1, x2))
let y_and = and((x1, x2): (y_nand, y_or))
return y_and
}
이렇게 하면 파세프트롱을 조합하여 실현할 수 있다.xor((x1, x2): (0, 0)) // 0
xor((x1, x2): (1, 0)) // 1
xor((x1, x2): (0, 1)) // 1
xor((x1, x2): (1, 1)) // 0
시험해 보니 모든 출력이 표와 같다.
XOR의 처리는 그림과 같습니다.
2층이 있어서 perceptron
라고 불린다.
Reference
이 문제에 관하여(DeepLearning~포세틀론 편제를 간단히 정리하고 싶습니다~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hmhmsh/items/d9d6366a38acee2f85e6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
아까 XOR가 못했어요.
하지만 파세프트론은 하나뿐만 아니라 여러 개도 연결할 수 있다.
func xor((x1, x2): (Double, Double)) -> Double {
let y_nand = nand((x1, x2): (x1, x2))
let y_or = or((x1, x2): (x1, x2))
let y_and = and((x1, x2): (y_nand, y_or))
return y_and
}
이렇게 하면 파세프트롱을 조합하여 실현할 수 있다.xor((x1, x2): (0, 0)) // 0
xor((x1, x2): (1, 0)) // 1
xor((x1, x2): (0, 1)) // 1
xor((x1, x2): (1, 1)) // 0
시험해 보니 모든 출력이 표와 같다.XOR의 처리는 그림과 같습니다.
2층이 있어서
perceptron
라고 불린다.
Reference
이 문제에 관하여(DeepLearning~포세틀론 편제를 간단히 정리하고 싶습니다~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hmhmsh/items/d9d6366a38acee2f85e6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)