Deconv approaches
neural net이 있을 때 w0, x0, w1, x1, w2에서 loss에 대한 영향력을 구할 때 임의 뉴런이 존재할 때
임의 뉴런만 1.0을 하고서 역전파를 했을 때 이미지에 대한 시각화를 보여줄 수 있으며 조금 더 선명하게 만들어주는 것은 Guided backpropagation을 사용하면 positive한 것만 반영을 하면서 선명한 이미지를 얻을 수 있게 됩니다.
RELU대신에 modified RELU를 이용합니다.
관심있는 뉴런만 놔두고 나머지는 0으로 둡니다. RELU는 forward pass를 통해서 0보다 작은 것은 0으로 처리하고서 0으로 가고 나머지 부분에 대해서만 그대로 backward pass가 진행되는 것을 알 수 있습니다.
guided backpropagation은 0으로 처리된 곳 이외에 마이너스를 가진 곳들이 다 0으로 변합니다.
Optimization to image
이미지에 대해 최적화를 한다는 것은 이미지가 optimization에 대한 파라미터가 된다는 것입니다.
CNN의 파라미터를 고정시켜주고 이미지를 파라미터로 이용하는 것입니다. Weight의 업데이트가 아닌 이미지의 업데이트인 것입니다.
일단 이미지를 zero image를 넣어주고 forward pass를 해줍니다. 이후 score vector에서 관심있는 class에 대해서만 1 설정을 해주고 나머지는 0으로 해준 다음 back propagation을 해줍니다. 그러면 이제 이미지의 업데이트를 약간 수행하게 되는 것이며 이를 반복해서 forward pass, 특정 클래스만 1로 만들어서 back propagation을 반복해주면
최초에는 zero image로 시작해서 어떤 것을 보고 activation을 보게 되는지 확인을 할 수 있습니다. class의 score를 최대한으로 maximize 하고 있구나라는 것을 볼 수 있는 것입니다.
Visualize the Data gradient
각 픽셀들의 영향력을 나타낸 것입니다.
grabcut을 해서 segmentation을 한 것도 있습니다.
원하는 것을 1로 두어서 시각화했던 것인데 마지막 레이어에서 score gradient를 읽어주지 않고 convNet의 과정에서 임의의 뉴런에서 실행을 할 수가 있다는 것입니다.
방법은 동일하지만 특정 레이어에서 관심을 가지고 있는 뉴런의 activation을 1로 만들고 나머지를 0으로 만들어 위와 같은 효과를 얻을 수 있다는 것입니다.
앞의 과정와 차이점은 blur 처리를 해주었다는 차이밖에 없지만 더 뚜렷하게 보이는 것을 알 수 있습니다. 생각해야 하는 것은 receptive field가 뒷단으로 갈수록 넓어집니다.
linear regression의 문제
적대적 예제를 조금 감미한다면 적대적인 공격에 대해서 막을 수 있는 방법이 명확하게 나오지 않고 있습니다. 그러기 때문에 아직까지 명확한 해답이 없기 때문에 linear function을 빼주고 다른 방법으로 가능하냐? 라는 것인데 linear function을 빼게 되면 공격에 대해선 강인해지긴 하지만 capacity가 떨어지는 문제가 발생합니다.
아직까지 캐글같은 곳에도 이런 적대적 예제를 해결하는 것에 대한 해결책의 발굴이 활발하게 이루어지고 있습니다. .
'IT 프로그래밍 > AI' 카테고리의 다른 글
[cs231n] CNNs in practice (1) | 2024.11.16 |
---|---|
[cs231n] RNN, LSTM (0) | 2024.11.16 |
[cs231n] Localization - as Regression (5) | 2024.11.15 |
[cs231n] CNN (1) | 2024.11.15 |
[cs231n] Training NN (0) | 2024.11.13 |