반응형

전체 글 806

시계열 데이터(주가, imu data) 예측 인공지능 - RNN, LSTM

RNN은 시간에 따라 변화하는 데이터를 얘측할 때 사용된다. stationary( 변화없는 )데이터 NON - stationary 데이터 둘 중에 무엇이든 이러한 데이터들은 이전의 값들이 필요하다. 그러나 CNN, FCN을 사용하면 이전 값들이 그냥 소멸되게 된다. 위 사진이 RNN에 대한 기본 원리 이다. 이렇게 RNN이 들어가면 t1 -> t n 까지 모든 결과가 모든 input들을 포함하게 된다. 위의 사지을 보면 확실히 뒤에 있는 부분은 미분이 많이 들어가서 gradient 소실이 크게 보인다. 그리하여 vanish나 explode를 막기 위해 LSTM을 사용하게 되었다. LSTM Long Short Term Memory LSTM을 이해하려면 gate 구조를 이해해야 된다. gate구조는 open..

인공지능/공부 2023.12.15

생성형 인공지능 GAN 개념 - autoencoder의 업그레이드 버전

GAN = Generative Adversarial Networks GAN은 이미 실습을 한번 했었다. 아래 포스팅을 통해 한번 확인할 수 있다. 2023.12.07 - [인공지능/공부] - TensorFlow - 생성형 인공지능 GAN TensorFlow - 생성형 인공지능 GAN 여기에 작성하진 않았지만 인코딩 엔코딩으로 모델을 생성하는 것에서 발전된 모델이다. 생성하는 모델이 있고, 그 것을 판단하는 모델이 있다. 생성한 모델에서 나온 것은 판단하는 모델에서 yoonschallenge.tistory.com 여기선 descriminative model(판단 모델) 과 generative model(생성 모델) 두개를 사용한다. 생성 데이터와 실제 데이터의 분포는 같아야 한다. 즉 쉽게 말하면 실제 데..

인공지능/공부 2023.12.15

물체의 위치까지 구분하는 인공지능 -segmentation, odject detection

여태까지 CNN으로 물체가 있다, 없다 정도만 알았다면 이번에 해볼 것은 어디 위치에 물체가 있는지 알려주는 segmentation이다. classification은 전체 input에 대해 오직 한개의 결과만 나오고, 한가지 class만 찾을 수 있다. segmentation은 픽셀 단위로 그 위치에 무엇이 있는지 알려준다. 그러므로 학습시킬 때 정답도 픽셀단위로 무엇이다 라벨링해야해서 손이 많이 간다. 여기선 DENSE layer를 사용하지 않고, convolution을 통한 down sampling, up sampling을 사용한다. 그리고 결과는 클래스 개수 만큼 채널이 나오고 원 핫 인코딩 된다. 이렇게 진행하면 어디에 무엇이 있는지 위치정보가 손실되게 된다. 그 위치 정보를 주기 위해 연결을 한..

인공지능/공부 2023.12.15

생성형 인공지능 Autoencoder - 개념

여태까지 FCN, CNN, CAM 모두 supervised learning였다. 즉 지도학습으로 input(data)와 정답(label)이 주어지는 학습이었다. 그러나 오늘 다룰 Autoencoder는 label이 없는 즉 정답이 input인 unsupervised learning이다. 나중에 나오겠지만 차원을 축소시켜 피쳐의 개수를 줄이고, 정보의 loss는 최대한 줄인다. 우린 encoder(z = f(x))와 decoder(x = g(z))로 나눌 수 있따. ( x = g(f(x))) 로스는 결과와 입력값의 차이를 제곱하는 mse와 비슷한 성격을 가지고 있다. latent space를 그래프로 표시하면 위와 같다. 여기서 점이 없는 부분을 decoder로 돌리면 없는 data를 생산할 수 있다. 그..

인공지능/공부 2023.12.14

설명 가능한 인공지능 CAM - 개념

기존 CNN, FCN은 설명이 불가능하다.(출력만 나온다. API) CNN에서 중요한 부분은 높은 가중치를 받는다. -> 이걸 확인하면 우린 네트워크를 설명할 수 있다. CLASS ACTIVATION MAP - CAM 우린 이러한 이유로 CAM을 만들었고, 사진의 중요한 부분을 찾을 수 있다. 기존 CNN구조는 위와 같이 Featrue extraction -> FCN으로 진행되어 우리가 무것을 어떻게 보고 설명하는지 판단할 수 없다. CAM에선 CNN의 flatten 전에 오메가(학습파라미터)를 사용하여 한개의 필터로 합친다. 그것이 class Activation MAP이다. 그것을 통해 우린 어디가 중요한 부분인 지 알수 있고, 그 map을 통해 classfication도 할 수 있다. 여기서 처음알았..

인공지능/공부 2023.12.14

CNN - 기본 개념

우리는 여태까지 FCN으로 tensorflow에서 Dense만 사용해왔다. 그러나 사진과 같은 경우엔 해상도가 만만치 않아 대충 1000*1000이라고 하면 일렬로 나열하면 1000000이 된다. 이게 Dense layer 하나만 거쳐서 100개로 줄어든다해도 100,000,000 1억개의 파라미터가 존재하게 된다. 이 것은 확실한 컴퓨터소스를 잘 활용하지 못하는 것이다. 그래서 위와 같이 필터를 사용하여 파라미터 9개만 사용하여 피쳐수도 줄이고, 중요한 정보만 가져오는 방식을 만들었다. 피쳐 수를 줄이고 싶지 않을 때 padding을 사용하게 된다. 그럼 0으로 padding 수 만큼 겹겹히 쌓아서 필터를 거쳐도 피쳐 수가 줄지 않게 해준다. 필터 크기가 3이면 패딩은 1, 필터 크기가 5이면 패딩은 ..

인공지능/공부 2023.12.13

알고리즘 기말고사 풀 버전 (퀵정렬 ~ 최단경로)

퀵 정렬 Alg quickSort(l) 1. if(l.size()>1){ k = a position in l lt, eq, gt = partition(l,k) quickSort(lt) quickSort(gt) l = merage(lt,eq,gt) } 2. return 피봇을 기준으로 큰 것은 오른쪽, 작은것은 왼쪽으로 나눈뒤 그 나눈 것 다시 재귀하여 크기 1이 될 때 까지 돌리기. 합치는 것은 그대로 합치기 분할 합병정렬에선 merge가 오래걸렸지만 퀵정렬에서는 partition이 오래걸린다. Alg partition(l,k) 1. p = l.get(k) 2. lt,eq,gt = empty list 3. while(!l.isEmpty()){ e = l.removeFirst if(e p} gt.addLa..

알고리즘/공부 2023.12.13
728x90
728x90