본문 바로가기
반응형

하얀해킹88

[AI 6주차] Optimization Algorithm Mini-batch gradient descent인공지능에서 Optimization Algorithm은 neural network 를 더 빠르게 학습시키기 위한 방식이다. 이전 내용에서 m examples training 에서 vectorization은 더 효율적으로 빠르게 계산하도록 도와준다는 사실을 배웠었다.X = [X^(1), X^(2), ... , X^(m)] # (n_x, m)Y = [y^(1), y^(2), ... , y^(m)] # (1, m) 그렇다면, m 이 아주 큰 값, 예를 들어  5,000,000 or 50,000,000 그 이상이라면 어떻게 될까?  아주 많은 양의 training data set 를 전부 처리하고 나서야 겨우  한 단계의 gradient descent 를 할 .. 2024. 7. 15.
[Fuzzing] Lecture 2. Lexical Fuzzing(Breaking Things with Random Inputs) Fuzzing : Breaking Things with Random InputsFuzzing이라고 알려져 있는 random text generation의 핵심 아이디어는 Failure를 드러내기 위해 program에 random 문자열을 넣는 것이다. FuzzersFuzzer는 Fuzzers에 대한 base class이다. Fuzzer가 가지고 있는 RandomFuzzer 는 단순 인스턴스화이다.Fuzzer의 fuzz()는 생성된 input 의 문자열을 return 해주는 메소드이다.class RandomFuzzer(Fuzzer): """Produce random inputs.""" def __init__(self, min_length: int = 10, max_length: int = 100.. 2024. 7. 12.
[Fuzzing] Lecture 1. Whetting your appetite (Exercise) Exercise 1 . Testing Shellsortdef shellsort(elems): sorted_elems = elems.copy() gaps = [701, 301, 132, 57, 23, 10, 4, 1] for gap in gaps: for i in range(gap, len(sorted_elems)): temp = sorted_elems[i] j = i while j >= gap and sorted_elems[j-gap] > temp: sorted_elems[j] = sorted_elems[j-gap] j -= gap sorted_elems[j] = temp return sorted_elems 우선, 예제 .. 2024. 7. 8.
[Fuzzing] Lecture 1. Whetting Your Appetite Fuzzing(퍼징): software의 취약점을 test하는 기법 중 하나이다. 위의 예시와 마찬가지로, software에 input값을 무작위로 대입해보고, 그 process에서 발생하는 error나 collision을 monitoring해서 security의 허점을 찾아내는 방식이다. fuzzing에 대해서 공부를 하기 전에 software testing의 개념이 알아야 한다. Software testing: software를 어떻게 test 하고, 이 test가 성공적인지 아닌지, 충분하게 testing 되었는지를 어떻게 판단할 수 있을까? 아래 square root function 예제 코드를 보자. def my_sqrt(x): """Computes the square root of x, us.. 2024. 7. 3.
반응형