달력

10

« 2019/10 »


 

역전파 알고리즘(back-propagation Algorithm)

·         오류 역전파 알고리즘(Error Back Propagation)

·         오차 역전파

·         "역전파" 통해 "역방향으로 에러를 전파(backward propagation of error)" 시키면서 최적의 학습 결과를 찾아가는 가능해졌습니다.

·         인공신경망모형에서의 학습과정에서 가중치를 갱신하는데 사용되는 대표적인 알고리즘입니다.

·         역전파 알고리즘은 홉필드(Hopfield) 개발한 것으로, 알고리즘의 개발로 인해 신경망 모델이 널리 사용되게 되었습니다.

 

·         최적의 학습 결과를 갖는 신경망을 설계하려면, 역전파(back-propagation) gradient-descent 방법을 사용해야 합니다.

·         역전파 개념은 입력이나 특정 넷의 가중치를 조금 변경시키면, 출력에 작은 변화가 일어난다는 점에 근거하고 있습니다.

·         다층 퍼셉트론에서 기여도 할당 문제에 대한 해결책입니다. (Rumelhart, Hinton and Williams; 1986)

 

 

https://en.wikipedia.org/wiki/Backpropagation

 

 

 

 

 

역전파(backpropagation) 용어 유래

"가중치(w) 바이어스(b) 값을 아주 작게 변화를 시키면, 편미분을 시키면, 출력 쪽에서 생기는 변화 역시 매우 작은 변화가 생기며, 작은 구간만을 보았을 때는 선형적인 관계가 있습니다." 말은 작은 변화의 관점에서는 선형적인 관계이기 때문에, 출력에서 생긴 오차를 반대로 입력 쪽으로 전파시키면서 w b등을 갱신하면 된다는 뜻이 됩니다.

 

w b 값들을 무작위로 변화시키는 것이 아니라, cost function 결국 w b 함수로 이루어졌기 때문에, 출력 부분부터 시작해서 입력 쪽으로( 방향으로), 순차적으로 cost function 대한 편미분을 구하고, 얻은 편미분 값을 이용해 w b 값을 갱신시z킵니다.

모든 훈련 데이터에 대해서 작업을 반복적으로 수행을 하다 보면, 훈련 데이터에 최적화된 w b 값들을 얻을 있습니다.

 

출력부터 반대 방향으로 순차적으로 편미분을 수행해가면서 w b값들을 갱신시켜간다는 뜻에서 만들어진 용어입니다.

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요



 

 

다중 조건 커버리지(Multiple Condition Coverage)

·         복수 조건 커버리지

·         연산식(Boolean Expression) 간의 마스크(Mask) 현상을 해결하기 위하여 조건문 내에 존재하는 논리 연산자를 고려한 모든 조합을 실행하는 것을 기준으로 하는 커버리지입니다.

·         조건문 간의 조합은 고려되지 않으나, 조건(Condition) 모든 가능한 조합이 나오도록 합니다.

 

 

 

 

마스크(Mask) 현상

어떤 조건이 다른 조건들의 판단 결과에 상관없이 미리 판단하는 것입니다.

 


Posted by codedragon codedragon

댓글을 달아 주세요

   

   

클래스 상속의 중요성

  • 클래스 상속은 객체의 재사용이라는 장점뿐만 아니라 코드의 간결성을 제공해 주는 객체지향적 언어의 장점과 특징으로 중요합니다.
  • 잘 정의된 super클래스가 있다면 sub클래스의 작성이 간편해지고 그러므로 해서 개발 시간이 단축되는 것들이 상속의 중요성과 장점이라고 할 수 있습니다

   

   

File Info

package com.phone;

CellPhoneMain.java

main부

package com.phone;

CellPhone.java

부모클래스

기본적인 휴대폰 기능

- 모델명, 제품번호, 벨소리코드

package com.phone;

DiCaPhone.java

자식클래스

카메라 기능 추가

- 화소, 렌즈

package com.phone;

MP3Phone.java

자식클래스

MP3 기능 추가

- 저장용량, 색상

   



   

제한사항

클래스 분리를 통해 구현

각 클래스애 추가된 기능 정보는 get메소드를 구현하여 출력(은닉화, 캡슐화)

   

   



상속관계를 통한 객체 생성 도식도

상속관계를 통해 정보 공유를 받으므로써 서브클래스의 작업이 매우 간결해지고 쉬워지는 것을 알 수 있습니다.

   

   

   

출력 결과

   

   

   

소스코드

package com.phone;

CellPhoneMain.java

package com.phone;

 

public class CellPhoneMain {

 

    public static void main(String[] args) {

        

        DiCaPhone dp = new DiCaPhone("A1001", "N1001", 1001, "800", "F1.8");

        

        MP3Phone mp = new MP3Phone("B1001", "M1001", 2001, 1024, "red");

        

        //디카폰 정보 출력

        System.out.println("모델\t 번호\t 벨코드\t 옵션(화소수/사이즈/색상 )");

        System.out.print(dp.getModel()+"\t");

        System.out.print(dp.getNumber()+"\t");

        System.out.print(dp.getBellSound()+"\t");

        System.out.print(dp.getPixel()+" , ");

        System.out.println(dp.getLens());

        

        //MP3 정보 출력

        System.out.print(mp.getModel()+"\t");

        System.out.print(mp.getNumber()+"\t");

        System.out.print(mp.getBellSound()+"\t");

        System.out.print(mp.getSize()+" , ");

        System.out.println(mp.getColor());

        

    }

}

CellPhone.java

package com.phone;

 

//기본적인 휴대폰 기능

public class CellPhone {

    

    //같은 패키지에서만 호출 가능 / 상속시에도 호출가능

    //보통 상속관계에서 패키지가 다르더라도 호출가능하도록 하기 위해 protected 주로 사용합니다.

    protected String model;        //모델

    protected String number;    //제품번호

    protected int bellsound;    //벨소리

    

    public String getModel(){

        return model;

    }

    

    public String getNumber(){

        return number;

    }

    

    public int getBellSound(){

        return bellsound;

    }

}

DiCaPhone.java

package com.phone;

 

//카메라 기능 추가

public class DiCaPhone extends CellPhone{

    

    private String pixel;    //화소

    private String lens;    //렌즈

    

    public DiCaPhone(String model, String number, int bellsound,

            String pixel, String lens){

        this.model = model;

        this.number = number;

        this.bellsound = bellsound;

        

        this.pixel = pixel;

        this.lens=lens;

    }

    

    public String getPixel(){

        return pixel;

    }

 

    public String getLens(){

        return lens;

    }

}

MP3Phone.java

package com.phone;

 

//MP3 기능 추가

public class MP3Phone extends CellPhone{

    

    private int size;        //음악 저장용 용량

    private String color;    //색상

    

    public MP3Phone(String model, String number, int bellsound,

            int size, String color){

        this.model = model;

        this.number = number;

        this.bellsound = bellsound;

        

        this.size = size;

        this.color = color;

    }

    

    public int getSize(){

        return size;

    }

    

    public String getColor(){

        return color;

    }

}

 

Posted by codedragon codedragon

댓글을 달아 주세요



 

 

NoMoreRransom(NMR)

·         노모어랜섬

·         2016 7 세계 각국 사법기관과 민간 보안 기업 등이 파트너로 참여하고 있는 랜섬웨어 피해 예방 프로젝트입니다.

·         해당 사이트에 방문하면 랜섬웨어에 걸린 파이을 복구할수 있는 랜섬웨어 복구프로그램을 제공하고 있습니다.

 

 

 

 

 

https://www.nomoreransom.org/


 

https://www.nomoreransom.org/ko/index.html


 


 

 


Posted by codedragon codedragon

댓글을 달아 주세요