arcord의 등록된 링크

 arcord로 등록된 네이버 블로그 포스트 수는 53건입니다.

[ 몽총이 엑셀 단어장 어플 이용 방법 ] [내부링크]

< 엑셀 단어장 어플 사용 방법 > 단어장 어플 '몽단'은 제가 기존에 만들었던 엑셀 단어장을 이용하여 엑셀 뿐만 아니라 모바일 환경에서도 같이 외울 수 있도록 하기 위해서 어플을 만들게 되었습니다. 엑셀 단어장 설명 및 다운로드는 아래 글에서 다운받고 확인하실 수 있습니다. https://blog.naver.com/arcord/222842061582 [ 몽총이 엑셀 단어장 제작 ] - 간단하게 만든 엑셀 단어장 수정[ Ver 0.4 ] 영어 공부를 하다가 단어를 귀찮아서 안외우는 버릇이 생겨서 안되겠다 싶어 엑셀 함수와 매크로를 이용해 ... blog.naver.com 추가로 그냥 설명이 필요없으신 분들은 아래 파일을 다운받아서 사용하시면 됩니다. 첨부파일 몽단.xlsm 파일 다운로드 아래는 기존의 엑셀파일로 만든 단어장입니다. '몽단' 에서는 엑셀 시트에서 ABC열만 사용합니다. 따라서 ABC열을 따로 시트를 분리 해주어서 사용해야합니다. 저는 아예 새로운 단어장 시트를 만들어서

[ 몽총이 두번째 어플 출시 ] 몽단 - 몽총이 단어장 [내부링크]

예전에 엑셀을 활용하여 엑셀 단어장을 만들어서 공유 했었는데 이를 좀 더 활용하여 어플로도 만들어보고자 하여서 만들기 시작했습니다. 생각보다 시간이 좀 걸리긴 했지만 개발을 다 하고 출시까지 했습니다!! 현재 플레이스토어에 몽단이라고 검색하시면 나옵니다. 블로그 내에 엑셀단어장과 어플을 둘다 활용할 수 있는 사용방법도 포스팅 되어있고, 어플을 통해 들어와서 볼 수도 있습니다. 사용법은 간단한데 엑셀파일 저장할때에만 좀 UTF-8로 저장을 해야 인코딩이 되어 읽을 수 있습니다. 이 부분을 제가 나중에 개발이 다 되었을 때 알게 되어서 일단 출시를 우선 했습니다. ㅠㅠ Previous image Next image https://play.google.com/store/apps/details?id=com.mongchong.wordtest&hl=ko&gl=US 몽총이 단어장 - 몽단 - Apps on Google Play If you make an excel file of the words

[ 몽총이 Flutter 개발 일지 - 06 ] 현재 시각 갱신하기 [내부링크]

두번째 어플도 만들었고, 이제 세번째 어플을 한번 만들어보고자 합니다. 기획안 어플에서는 시간을 받아오는 것이 필요하기에 시간을 받아오는 것을 구현했습니다. 처음 프로젝트를 만들때 main.dart에 있는 값들을 다 지우고 stful를 사용하기만 하면 알아서 아래처럼 작성이 됩니다!! 저도 막상 다 지우고 처음에 어떻게 하지..이러고 뒤적뒤적 거렸어요 ㅠㅠ class extends StatefulWidget { const ({Key? key}) : super(key: key); @override State<> createState() => _State(); } class _State extends State<> { @override Widget build(BuildContext context) { return Container(); } } 우선 시간 갱신을 하기 위해서는 패키지 설치를 먼저 해주어야합니다. yaml 파일에 timer_builder를 설치해주세요. timer_build

[ 몽총이 일상 ] - 너무 배부르게 놀아버린 문래동 [내부링크]

그동안 여러군데 많이 놀러다니긴 했는데 핸드폰 카메라 때문에 사진을 잘 안찍게 되면서 포스팅도 점점 안하게 되었다가 이번에 아이폰으로 바꿔서 다시 사진을 열심히 찍어볼려고 하고 있습니다!! 이번 여행은 인스타에서 맛집을 보는데 라멘이 너무 맛있어 보여서 여기는 꼭 가야겠다!! 하고 갔습니다!! < 문래동멘 > https://naver.me/Gl53a4b4 문래동,멘 : 네이버 방문자리뷰 215 · 블로그리뷰 220 naver.me 간곳은 문래동에 있는 문래동멘 입니다!! 오랜만에 사진 찍어볼려니까 잘 안찍어지네요 ㅠㅠ 돈코츠라멘하고 멘치카츠를 먹었는데 진짜 너무 맛있었어요!! 돈코츠라멘은 좀 매운맛으로 했었는데 진짜 지금까지 먹어본 돈코츠라멘중에 제일 맛있었던 것 같아요!! 양도 많았고 그리고 샐러드도 주니까 좋더라고요 멘치카츠는 뭔가 볼카츠? 느낌인 것 같더라고요 근데 생각보다 커가지고 라멘이랑 멘치카츠 둘다 먹기가 너무 힘들더라고요...ㅠㅠ 한 주먹보다 조금 작았던 것 같아요 ㅋ

[ 몽총이활동 ] - 2021년 KUS Honors 아이디어톤 대회 [내부링크]

예전에 학교에서 진행했던 블록체인 교육을 듣는 과정이 있었는데 블록체인이 무엇인지 궁금하여 참여했었는데 근데 막상 머리속에 들어온 건 없는 것 같아요..ㅠ 처음 몇번 하다가 반포기 상태로 진행해서 ㅠㅠ 아무트 그 과정에서교내에서 진행하는 아이디어톤에 참가하게 되었습니다. 다행이 아이디어톤 대회여서 데이터 활용 아이디어만 내면 되기 때문에 그렇게 큰 부담은 없었습니다. 사실 이 대회를 하면서 아이디어는 괜찮지만 그렇게 많은 시간을 투자하면서 회의를 진행핳지 않았기에 그렇게 크게 기대하지는 않았는데 이때 발표한 PPT는 저도 시험기간이기도 해서 시험준비때문에 만들기 부담스러워서 다른 팀원이 제작해주었습니다. 운 좋게 장려상을 받게 되었습니다.

[ 몽총이 활동 ] 2021 세종 UNION 창업경진대회 [내부링크]

후배가 저번에 창업관련수업을 들었을 때 좋은 아이디어라고 받았던 아이디어를 주제로 같이 창업경진대회를 나가자고 하여서 5명이서 팀을 이루어서 참가하였습니다. 이때 친구가 발표를 하러 갔는데 ( 시험기간이거나 수업시간이 겹쳐서 발표자 혼자 가게 되었습니다.. ) 친구가 가서 현재 상황을 말해주는데 다들 아이디어나 퀄리티가 너무 좋아서 저희팀은 무조건 떨어질거 같다고 그래서 아쉽지만 아직 실력이 부족한 부분이라 생각하고 좋은 경험했다고 생각하고 지나갔었는데 이후 결과 발표때 연락이 오더니 상받았다고 해서 깜짝 놀랐습니다. ( 전 사실 실제로 보기전까지는 거짓말인줄 알았습니다 ㅋㅋㅋ ) 저희는 귤을 활용한 창업 아이디어로 사업 배경, 시장 분석, 마케팅 계획, 이후 기대효과에 대해서 다같이 서로 의논을 하면서 회의를 진행하였습니다. 이후 회의가 끝나고 발표자료를 만들때 저는 디자인 역할을 맡아서 진행하였습니다. 만약 저희가 실제 이 아이디어를 만들어서 회사를 차리면 로고를 어떻게 만들까라

[ 몽총이 활동 ] 2021년 교내 프레젠테이션 경진대회 [내부링크]

교내 대회나 공모전을 다 끝내고 아 할거 없나 하다가 교내 프레젠테이션 경진대회를 보고 할 아이디어가 있으면 해보고 없으면 안해야겠다 생각하고 있다가 음.. 이런 아이디어로 해볼까 하고 참여하게 되었습니다. 예선과 본선으로 나뉘어져서 예선에는 붙었지만 본선에서는 아쉽게 상을 받지 못했습니다.ㅠㅠ 하지만 상을 받지는 못했지만 저는 이 대회를 통해서 발전을 했다는 것을 느꼈습니다. 혼자서 참여하였기에 PPT제작 부터 발표까지 혼자 진행했어야했는데 제가 발표에 워낙 자신이 없어서 아무리 좋은 아이디어나 괜찮은 것도 제 발표로 다 마이너스 시켜버리는 수준 이라서 항상 발표를 하지 안했는데 저는 이 경진대회를 통해 발표를 해야한다는 생각에 발표에 많은 준비를 했습니다. 하지만 막상 발표 때 결국 더듬거리면서 발표를 하게 되었지만, 덕분에 발표에 대해서 자신감이 조금 생긴 것 같고 또한 발표를 할때 어떻게 준비를 해야할지에 대해서 좀 더 알아 갈 수 있는 기회가 되었습니다. 일단 저는 발표 주

[ 몽총이 Flutter 개발 일지 - 02 ] 버튼 누를시 텍스트 변경 [내부링크]

csv파일을 불러온 후 해당 csv파일을 인코딩하여 가져올 수 있게 해주었기에 이제는 랜덤한 단어가 나와야하므로 단어의 No. 가 랜덤으로 나오게 해주기 위해 그 전에 랜덤으로 나온 값이 화면에 보여주도록 하는 과정을 해보았습니다. 최종 결과에는 엑셀 단어장처럼 해단 단어의 넘버,단어 이렇게 보여줄려고 하기 때문에 랜덤으로 값이 변할때마다 해당 숫자가 화면에 보여지도록 했습니다. 우선 제가 사용한 엑셀 파일양식은 이렇게 되어있습니다. 테스트를 하기 위해서 12개정도만 단어장으로 만들어준 후 테스트를 진행하고있습니다. 우선 테스트를 하기 위해 버튼 하나를 추가로 만들어 주었습니다. 처음에 버튼을 만들었던것처럼 따로 위젯 check함수(?) 를 만들어서 build에 추가해주었습니다. @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text("file picker Tutorial !"

[ 몽총이 프로젝트 ] - 긍부정 블로그 예측 사이트 [내부링크]

이번에 프로젝트로 진행했던 긍부정 블로그 예측하는 사이트를 만들었습니다. 우선 단계로 네이버 블로그 크롤링하여 글들을 가져왔습니다. 우선 Flask를 사용하여 GET,POST method를 이용하여 웹과 파이썬의 데이터를 주고 받을 수 있게 하였고, 처음 페이지에서 keyword라는 이름으로 입력값을 받고 이 값을 파이썬에 넘겨 주는 과정을 진행하였습니다. <body class="gra"> <div class="search-box"> <form action="http://127.0.0.1:5000/search" method="post"> <input class="search-txt" type="text" name="Keyword" placeholder="키워드" value="{{Keyword}}"> <button class="search-btn" type="submit"> <i class="fas fa-search"></i> </button> </form> </div> </body>

[ 몽총이 Flutter 개발 일지 - 03 ] RadioListTile [내부링크]

전에 랜덤으로 단어가 나오게 까지 진행하였는데 랜덤으로 나오는 과정에서 RadioListTile을 이용하기위해 살짝 변형하였습니다. final List<int> nums = <int>[0, 0, 0, 0]; final List<String> Word = <String>[ '단어장을 열어주세요.', '단어장을 열어주세요.', '단어장을 열어주세요.', '단어장을 열어주세요.' ]; String Test_word = 'WORD TEST'; // 랜덤 넘버에 해당하는 영단어 생성 String Answer_mean = ''; 4개의 단어를 랜덤으로 받아 온 후 그 중 랜덤으로 한개를 정해서 테스트할 단어를 뽑는 것으로 바꾸었습니다. 리스트에 정답 단어 1개와 다른 단어 3개를 만들어야하기에 1개씩 랜덤으로 뽑아내면 중복이 나올수도 있기에 이 과정을 없애기 위해서 아예 처음부터 4개의 단어를 뽑았습니다. List에 값을 넣어준 이유는 값을 안넣어주면 계속 에러가 나서 저렇게 했습니다. //

[ 몽총이 Flutter 개발 일지 - 04 ] 앱 아이콘 변경하기 [내부링크]

이제 중요한 기능들을 다 만들었기에 우선 다른 작업보다 디자인 컨셉부터 먼저 잡고자 했습니다. 그래서 앱 아이콘을 뭘로 할까 하다가 다음과 같이 앱 아이콘을 만들었습니다. 제 닉네임인 몽총구리에서 첫 어플 제작이다 보니 몽총이 아이콘을 찾다가 귀여운 느낌이 들어서 앱 아이콘은 이걸로 하기로 했습니다. 우선 만든 디자인을 아래의 사이트에 넣어주면 알아서 아이콘이 만들어집니다!! 저는 https://appicon.co App Icon Generator Generate icons and images for mobile apps, android and iOS. No need to upload or download. Works on your browser appicon.co 저는 아이폰과 안드로이드만 할것이기에 아이폰과 안드로이드에 체크한후 혹시나 하는 생각에 아이패드도 선택후 앱 아이콘들을 만들었습니다. 파일 압축을 풀면 다음과 같은 파일이 나오는데 여기서 android는 말그대로 andr

[ 몽총이 Flutter 개발 일지 - 05 ] TextField 숫자만 입력받기 [내부링크]

기존에 영단어 어플을 하다가 갑자기 너무 만들고 싶은 앱이 생겨서 잠시 딴길로 새버렸습니다... 새로 만들려는 앱은 그렇게 복잡하지 않아서 금방 만들 수 있을것 같아 기존에 만들던거는 일단 필수기능은 다 만들었으니 잠시 멈추고 새로운 앱을 일단 급하게 만들기 시작했습니다. 새로운 앱을 만들기 위해서 우선 숫자를 입력 받아야합니다 그래서 Textfield를 이용하여 숫자만 받도록 하였습니다. 우선 저번처럼 기본 먼저 만들어 주었습니다. void main() { runApp(const MyApp()); } class MyApp extends StatefulWidget { const MyApp({Key? key}) : super(key: key); @override State<MyApp> createState() => _State(); } class _State extends State<MyApp> { @override Widget build(BuildContext context) { r

[ 몽총이 파이썬 딥러닝 공부 - 08 ] 여러 변수의 역전파 [내부링크]

한동안 Flutter 하고 다른 공부때문에 잠시 딥러닝 공부를 못하다가 지금까지 한 내용들이 기억이 가물가물해서 천천히 복습하고자 포스팅합니다. 전에는 역전파 자동화시 입력되는 값이 하나만을 받았습니다. 이제 이것을 여러개의 값을 받아서 역전파 자동화를 시킬 것입니다. 기존의 Function 함수는 입력값 x를 하나만 받고 그 값을 순전파를 진행하여 y값 하나만 나오게 되어있습니다. class Function: # Square 와 Exp의 부모 클래스 # __call__은 클래스의 객체를 호출할 수 있게 해주는 메소드 -> 그러므로 자식클래스의 입력값이 __call__로 오게 된다. def __call__(self, *inputs): # input 은 Variable 인스턴스라고 가정 / input = Variable(np.array(x)) # * 표시를 하면 리스트를 사용하는 대신 임의 개수의 인수를 건네 함수를 호출 할 수 있다. x = input.data y = self.for

[ 몽총이 첫번째 어플 출시 ] 이더 - 이상한 더치페이 [내부링크]

기존에 올렸던 엑셀 단어장을 어플로 만들고자 만들다가 중간에 잠깐 이런 어플 만들고 싶어서 잠깐 멈추고 개발을 했고, 출시를 했습니다. 어플 이름은 이상한 더치페이로 이더라고 출시를 했습니다. 친구들과 술을 마시거나 음식 계산을 할때 누구는 많이 내고, 누구는 적게 내면 좀 재밌지 않을까 싶어서 만들게 되었습니다.ㅋㅋㅋ 저도 친구들과 술 마실때 해봤는데 다 제가 제일 높은 금액만 나와서 너무 슬펐지만 그래도 꽤 재미있더라고요. - 사용 방법 - 계산해야할 금액을 입력하고 인원수를 정하고 계산하기를 누르면 해당 인원만큼 금액이 랜덤하게 나눠줍니다. 계산하기를 누를때 각자 자신이 몇번할지 정하고 결과를 확인하고 해당 금액만큼 계산을 하면 됩니다. Previous image Next image 빨리 출시하고 싶은 마음에 여러가지 기능은 못넣어서 좀 아쉬워서 단어장 어플을 다 만들면 업데이트를 진행할 예정입니다. ㅠㅠ 업데이트는 10원 단위로 떨어지게 하고 금액 배분 비율을 조절할 수 있게

[ 몽총이 활동 ] - comento 직무 부트캠프 수료 [내부링크]

학교에서 직무 부트 캠프를 지원해주어서 이번 기회에 한번 참여하게 되었습니다. 인공지능 분야로 진로를 나가고자 생각하고 있어서 인공지능관련 캠프를 찾는데 그나마 하고싶은 분야랑 맞는것이 인공지을 활용한 챗봇 구축밖에 없어서 아쉽지만 일단 이 캠프라도 신청해서 인공지능에 대해 좀 더 알아보고자 했습니다. 우선 이 캠프는 챗봇을 이용할때 dialogflow 를 이용하여 인공지능 챗봇을 설계하였습니다. dialogflow를 처음들어봐서 낯설었지만 생각보다 그렇게 어렵지 않아서 쉽게 따라갈 수 있었습니다. 아래는 과제로 만든 챗봇 기획안입니다. 생각보다 직무부트캠프에 시간을 많이 쏟기가 어려워서 급하게 하다보니 모르는 부분도 많았고, 그냥 스윽하고 지나간 느낌이 많았습니다. ㅠㅠ 이 캠프를 듣기 전까지는 챗봇이라는 것은 인공지능이라기보다는 단순히 시나리오를 정하고 그대로 진행하는 것인줄 알았는데 캠프를 진행하고보니 다양한 챗봇의 종류가 있다는 것을 알았습니다. dialogflow의 사용이

[ 몽총이 머신러닝 공부 ] 개념부터 차원축소까지 최종정리 [내부링크]

머신러닝 포스팅을 안한지 너무 오래되었고, 정리는 하였지만 하나하나 올리기가 귀찮아서.. 한번에 다 올려버렸습니다..ㅎ 발표를 하기 위해 ppt를 만들어서 조금 내용이 부족할 수도 있지만 몇몇 군데는 슬라이드 노트에 따로 추가적인 내용을 정리해놓았습니다. 사실 이것을 올리는 건 별 의미는 없지만.. 머신러닝 게시물이 애매하게 끝나는것 같아서 마무리 정리로 포스팅을 올려버렸습니다..ㅎ 첨부파일 머신러닝 수정.pptx 파일 다운로드 Previous image Next image Previous image Next image Previous image Next image Previous image Next image

[ 몽총이 파이썬 딥러닝 공부 - 05 ] Two Layer Net ( 2층 신경망 ) [내부링크]

책의 예제인 Two Layer Net 즉 2층 신경망을 경사하강법과 오차역전파법 두가지를 비교해보면서 두 가지 방법의 차이점에 대해서 알아보고자 하여 코드를 분석하면서 어떤 역할을 하는지 천천히 집으며 넘어갔습니다. 각각에 대한 내용들은 주석으로 처리하여 코드 하나하나씩 보며 내용을 이해했습니다. 전체 코드 # 시그모이드 함수 def sigmoid(x): return 1 / np.exp(-x) # 소프트맥스 함수 def softmax(x): if x.ndim == 2: ''' x = (100,10) -> x.T = (10,100) np.max(x,axis=0) = (100,) -> axis=1 로 할경우 한개의 데이터가 아닌 ''' x = x.T # 행렬의 차원을 맞춰주기 위해서 transpose 해준다. x = x - np.max(x,axis=0) # np.max(x,axis=0) -> y = np.exp(x) / np.sum(np.exp(x), axis=0) return y.T

[ 몽총이 파이썬 딥러닝 공부 - 06 ] 클래스 [내부링크]

역전파 자동화를 하기 위해 클래스를 이용하여 좀 더 편하게 구현을 할 수 있기에 역전파 자동화를 공부하기전 클래스가 무엇인지 그리고 또 어떻게 사용하는지에 대해서 공부를 했습니다. 우선 클래스란 반복되는 불필요한 소스코드를 최소화 하면서 객체를 프로그래밍 상에서 쉽게 표현할 수 있는 프로그래밍 방법입니다. 클래스에 대해서 말하면 인스턴스라는 용어가 나오는데 여기서 인스턴스란 클래스로 정의된 객체를 프로그래밍 상에서 이용할 수 있게 만든 변수 입니다. 예를 들면 클래스를 이용하여 '강아지'라는 객체를 클래스로 정의하면 이 '강아지'라는 클래스를 컴퓨터 내에서 역할을 불어넣어주는 것을 인스턴스화라고 합니다. 즉 컴퓨터에 메모리를 전달해주는 것입니다. 인스턴스란 뜻을 재대로 이해하기보다는 추상적으로만 이해하고 넘어갔습니다. ㅠㅠ 추후 계속 하다보면 인스턴스라는 뜻이 정확히 어떤역할을 하는지 알 수 있지 않을까 싶어서 일단 좀 더 클래스를 많이 다뤄보고자 합니다. 클래스는 크게 멤버와 함수

[ 몽총이 파이썬 딥러닝 공부 - 07 ] 역전파 자동화 [내부링크]

역전파 자동화를 하기전에 수동 역전파를 먼저 해보겠습니다. Variable클래스는 데이터를 저장해주는 역할만 합니다. 우선 무엇을 할 것인지에 대해서 계산 그래프를 그려보면 x -> Square -> Exp -> Square -> y 이런식으로 계산이 진행이 됩니다. class Variable: def __init__(self,data): self.data = data self.grad = None class Function: #Square 와 Exp의 부모 클래스 # __call__은 클래스의 객체를 호출할 수 있게 해주는 메소드 -> 그러므로 자식클래스의 입력값이 __call__로 오게 된다. def __call__(self,input): # input 은 Variable 인스턴스라고 가정 / input = Variable(np.array(x)) x = input.data # 데이터를 꺼낸다 y = self.forward(x) # 구체적인 계산은 forward에서 계산한다. ->

[ 몽총이 Flutter 개발 일지 - 01 ] Filepicker를 이용한 csv 파일 가져오기 [내부링크]

이번에 엑셀을 이용한 영단어장을 만들어보고 컴퓨터가 없으면 사용할 수 없어서 이것을 좀 더 편하게 해보고자 엑셀로 만든 단어장을 어플화 시켜보기로 했습니다. 그래서 예전에 잠깐 공부했던 flutter를 기초만 대충 공부한 후 직접 앱을 빨리 만들어보고 싶다는 생각에 직접 바로 부딪혀서 앱을 만들어보고자 했습니다. 우선 엑셀에 입력한 단어들을 불러오기 위해 Flutter에서 FilePicker를 사용했습니다. FilePicker를 통하여 csv 파일을 가져와서 읽는 것을 1차 목표로 정하고 진행하였습니다. 우선 FilePicker는 파일을 가져와 읽을 수 있는 패키지 입니다. FilePicker를 사용하기 위해서는 우선 pubspec.yaml 파일에 추가해주어야합니다. yaml 파일 안에 dependencies에 file_picker: ^4.6.1을 추가해주고 csv파일을 가져오기 위해 csv: ^5.0.0 을 추가해주었습니다. 사실 csv역할에대해서는 안찾아봐서 잘 모르겠습니다...

[ 몽총이 활동 ] - 2021년 하이트진로 대전 HIFIVE 3기 수료 [내부링크]

작년에 대외활동으로 활동했던 HIFIVE 3기 수료한지 시간이 한참 지났는데 올려야지 하고 그냥 있다가 어느새 시간이 너무 많이 지나버렸네요... 그래서 많이 늦긴 했지만 그동안 포스팅을 하지 않고 했던 활동들을 다시 천천히 포스팅 해보고자 합니다. ㅠㅠ 작년에는 코로나19가 너무 심할때였기에 재대로된 활동을 많이 하지 못했어요 ㅠㅠ 오프라인활동을 하는 것에 제한이 있어서 온라인으로 주로 진행하였지만 온라인으로 진행하기에는 많은 제한이 있어서 결과적으로 활동을 재대로 하지 못했습니다. 술 마시는 것을 좋아해서 했었지만 결과적으로 코로나때문에 재대로 즐기지도 못하고 활동도 재대로 못하고 수료하게 되었네요...ㅠㅠ 일단 HIFIVE를 하면서 참이슬 굿즈를 받을 수 있었습니다!! 예전부터 참이슬 굿즈 갖고 싶었는데 이렇게 가지게 되어서 많이 좋았습니다. ㅎㅎ 받은 굿즈들은 제 방에 깔끔하게? 정리도 했습니다. 작년에 했기에 지금 포스팅을 할까말까 진짜 고민 했습니다. ㅠㅠ HIFIVE활동

[ 몽총이 활동 ] - AI 개발을 위한 머신러닝,딥러닝 활용I 수료 [내부링크]

학교에서 진행한 프로그램인데 일주일에 한번씩 교육을 들은 후 최종적으로 하나의 프로젝트를 진행하는 것을 목표로 수업을 진행하였습니다. 수업을 진행하면서 느낀점은 제가 머신러닝,딥러닝을 공부하면서 몰랐던 파이썬 코드나 용어들을 배울 수 있었습니다. 이 부분은 좋았지만 아쉬운점은 이론에 대한 설명이 저에게는 부족한 느낌이 들었습니다. ㅠㅠ 제가 많이 부족하여 그런것일 수도 있지만 딥러닝 모델에 대해서 설명을 하실때 저는 기존에 딥러닝 공부를 numpy로만 코드를 작성하여 내용 이해와 코드 이해를 통해서 어떤식으로 작동이 되는지를 이해하면서 공부를 했는데 수업에서는 tensorflow와 Keras의 기존에 있는 코드로만 하다보니 내용은 이해가 되었지만, 코드로는 어떻게 작동하는지를 잘 모르겠어서 일단 그냥 이렇게 쓰는구나하고만 넘어갔습니다. 교육이 다 끝나고 나서 이제 총 8주간의 프로젝트를 개인적으로 진행하는 시간을 가졌습니다. 저는 프로젝트 주제를 예전 데이터 마케팅 교육을 들어면서

[ 몽총이 활동 ] 2021년 교내 독서 프레젠테이션 대회 [내부링크]

작년에 교내에서 진행했던 했던 독서 PT 대회에 참여했었는데 자료는 있지만 기록을 남기고 싶어서 시간이 많이 지났지만 포스팅을 해보고자 합니다. 교내에서 진행했던 독서PT대회는 도서 한가지를 정하여 읽고 그 내용에 대해 PT를 하는 대회입니다. 후배들과 팀을 이루어서 참가하였는데 예선은 합격했지만 아쉽게 본선에서 장려상만 받아서 아쉬움이 많았습니다. ㅠㅠ 본선에 가는 것만으로도 이미 장려상이 확정이었고, PPT 디자인이 생각보다 느낌있게 잘 만들어져서 좀 기대했었는데 아쉬웠습니다. ㅠㅠ 저희팀은 기묘한 미술관이라는 책을 읽고 몰랐던 미술작품에 대해서 설명하고 해당 시대에는 어떠한 상황이 있기에 이러한 작품이 나오지 않았나 라는 의사와 현재의 시대와 비교하면서 각각의 미술작품이 무엇을 의미할까 해석을 하는 발표를 진행하였습니다. PPT는 듣는사람이 실제 미술관에 와서 설명을 듣는 것처럼 컨셉을 잡고 PPT를 제작하였습니다. ( 나름 열심히 만들었는데..ㅠㅠ ) 각각의 챕터를 미술관 하

[ 몽총이 활동 ] 교내 학술제 포스터 [내부링크]

저번 1학기때 학교에서 진행한 학술제에 참가하여 포스터를 제작하여 발표를 했습니다. 머신러닝과 딥러닝을 공부하고 있어서 저는 머신러닝과 딥러닝을 주제로 학술제 발표를 진행하였습니다. 이게 처음 만들었던 포스터였는데 학술제도 처음이여서 최대한 내용을 넣어야겠다라고 생각하고 넣었었는데 너무 쓸데없는 내용이 많고, 해당 내용에 대해서 아직 잘 알지 못해서 피드백을 받은 후 다 엎고 발표를 할 수 있는 정도로 제가 확실히 아는 내용들만 넣어서 다시 수정했습니다. ㅠㅠ ( 디자인이 급 초라해진 느낌이라 아쉬운 마음이..ㅠㅠ ) 이때는 머신러닝에 대한 공부가 끝나고 막 딥러닝에 대해서 공부할때여서 아직 이해를 잘 못할때여서 많이 부족한 부분이 많았습니다. < 수정 전 > < 수정 후 > 학술제 포스터를 만들면서 아직 내가 모르는 것이 많구나 하는 생각과 많이 부족하다 라는 생각이 너무 많이 들어서 이후로 자극받아 좀 더 열심히 할려고 하는 것 같습니다.

[ 몽총이 파이썬 머신러닝 공부 - 07 ] 인코딩,스케일링 [내부링크]

7.1 데이터 인코딩 사이킷런 머신러닝 알고리즘은 문자열 값을 허용하지 않아 숫자형으로 값을 바꿔줘야한다. 이 과정을 인코딩이라고 한다. 이렇나 문자열들은 대부분 예측에 중요한 요소가 되지 않는다. 오히려 머신러닝 알고리즘을 복잡하게 만들어 예측 성능을 떨어뜨릴 수 있기 때문에 불필요한 문자열 값 들은 인코딩을 하지 않고 삭제하는 것이 좋다. 머신러닝에서 데이터 인코딩에서 대표적인 인코딩 방식은 레이블 인코딩과 원-핫 인코딩이다. 7.1.1 레이블 인코딩( Label encoding ) 레이블 인코딩은 LabelEncoder 클래스로 구현하며 LabelEncoder 객체를 생성하고 fit() 과 transform()을 이용해 레이블 인코딩을 수행한다. 이러한 인코딩은 다양하게 활용할 수 있다. encoder.classes_를 이용하면 인코딩된 숫자들의 원래의 값들을 알 수 있다. encoder.inverse_transform()을 이용하면 인코딩된 숫자를 배치하여 원하는 순서대로 원

[ 몽총이 파이썬 머신러닝 공부 - 08 ] 머신러닝 평가 [내부링크]

8.1 머신러닝 평가 머신러닝 모델의 성능 평가는 일반적으로 분류와 회귀 이렇게 두개로 나뉘어진다. 회귀의 성능평가는 대부분 실제 값과 예측값의 오차평균값에 기반한다. 분류의 성능평가는 총 6가지 종류가 있으며, 정확도, 오차행렬,정밀도,재현율,F1스코어,ROC AUC 가 있다 8.1.1 정확도 ( Accuracy ) 정확도는 직관적으로 모델 예측 성능을 나타내는 평가 지표이며, 실제 데이터에서 예측 데이터가 얼마나 같은지를 판단하는 지표이다 8.1.2 오차행렬,정밀도,재현율 오차행렬은 학습된 분류 모델이 예측을 수행하면서 얼마나 헷갈리고 있는지도 함께 보여주는 지표이다. 오차행렬은 위 이미지처럼 4분면 행렬에서 실제 클래스 값과 예츨 클래스값이 어떠한 유형을 가지고 있는지를 가지고 평가한다. 예측 클래스와 실제 클래스의 값 유형에 따라 결정되는 4가지 값을 다양하게 결합하여 분류 모델 예측 성능에서 오류가 어떤 모습으로 발생하는지 알 수 있다. TN : 예측값을 Negative 값

가장 이해하기 쉬운 유니티 입문서 - 유니티 교과서 ( 개정 5판 ) [내부링크]

유니티를 이용해 게임 제작을 하고 싶으신분들에게 딱 좋은 책이 나왔습니다. 저도 유니티를 이용해 게임제작을 하고자 해서 공부를 시작했지만 유튜브나 강의를 통해 공부할때 가이드 라인을 정확하게 잡기가 어려워서 공부에 어려움이 생기고 잠시 공부를 멈추었습니다. 하지만 유니티 교과서를 읽고 나니 처음부터 이 책을 통해 공부했었으면 어떨까라는 생각을 가지게 되었습니다. http://book.naver.com/bookdb/book_detail.naver?bid=21510094 유니티 교과서 검증된 베스트셀러 [유니티 교과서] 유니티 2021 버전에 맞춰 개정! 그림으로 이해하고 만들면서 익히는 가장 쉬운 유니티 입문서! [유니티 교과서(개정5판)]은 유니티를 사용해 2D/3D 게임과 애니메이션을 만들면서 유니티 기초 지식과 함께 게임 제작 흐름을 익히는 것을 목적으로 한다. 유니티를 설치한 후 C# 핵심 문법을 학습하고, 이어서 여섯 가지 2D/3D 게임을 ‘게임 설계하기 → 프로젝트와 씬

[ 몽총이 엑셀 단어장 제작 ] - 간단하게 만든 엑셀 단어장 수정[ Ver 0.4 ] [내부링크]

영어 공부를 하다가 단어를 귀찮아서 안외우는 버릇이 생겨서 안되겠다 싶어 엑셀 함수와 매크로를 이용해 간단한 단어장을 만들어봤습니다. 일단 기본적으로 이렇게 되어있습니다. 급하게 만든거라 디자인이 좀 구리구리 합니다 ㅠㅠ 왼쪽은 단어장입력이고 오른쪽은 테스트를 볼 공간입니다. 가운데 TEST버튼을 누르면 오른쪽에 랜덤으로 30개의 영단어가 나오게됩니다. 이후 Ans에 값을 입력하면 Means에 답이 나오게 됩니다. 이런식으로 답을 입력해야지 해당 단어의 정답이 나옵니다. 답에 입력되지 않으면 정답도 나오지 않습니다. 일단 개인적으로 만든것이지만 혹시나 필요하신분 있을까 해서 공유합니다. 혹시 오류가 있다면 말씀해주세요!! 현재 간단히 만들어서 중복으로 나오는 경우가 있는데 이것은 추후 수정해보겠습니다. ( VBA를 오랜만에 다뤄보니까 기억이 하나도 안나네요...ㅠ ) 이번에 수정하면서 매크로 걸리는 시간이 좀 오래걸리게 되더라고요..ㅠㅠ 그래서 수정전것도 올려놓을게요. 수정사항 [

[ 몽총이 파이썬 딥러닝 공부 - 01 ] 퍼셉트론 붓꽃/생선 데이터 분류하기 [내부링크]

머신러닝을 차원축소까지 공부를 한뒤 밑바닥부터 시작하는 딥러닝책으로 딥러닝을 공부하기 시작했습니다. 퍼셉트론과 분류에 대해서 좀 더 자세히 이해를 하고자 퍼셉트론을 이용하여 기존의 붓꽃 데이터와 생선데이터를 이용하여 단층 퍼셉트론 분류 코드를 작성해보았습니다. 우리가 흔히 딥러닝에서 말하는 인공신경망은 단층 퍼셉트론을 여러개의 단층 퍼셉트론을 합쳐진것을 말합니다. 계속 공부하다가 이제 조금씩이라도 공부한 내용을 올려보고자 합니다. ㅠㅠ < 붓꽃 데이터 분류 > - 준비단계 - 데이터들을 선형으로 분류를 하기 위해 활성홤 함수로는 계단함수를 이용해주었습니다. 계단함수는 입력값이 0보다 크면 1을 작으면 0을 반환해줍니다. def step_function(X): return np.where(X>=0,1,0) # 모든 곳에서 X가 0보다 크면 1, 작으면 0을 반환 iris = load_iris() iris_features = iris['data'][:100,:2] iris_target

[ 몽총이 파이썬 딥러닝 공부 - 02 ] 신경망/활성화함수 개념 [내부링크]

이전에는 단층 퍼셉트론을 이용하여 붓꽃/생선 데이터를 이용하여 퍼셉트론 분류를 진행했습니다. 단층 퍼셉트론은 계단함수를 이용하기 때문에 선형적으로 분류를 할 수 밖에 없는 단점이 있습니다. 그래서 이러한 단점을 보완하기위해 신경망이 나오게 됩니다. 신경망은 여러개의 단층 퍼셉트론들을 합쳐 구성한 것입니다. 이러한 신경망은 비선형으로 데이터를 분류를 할 수 있게 해줍니다. 이처럼 퍼셉트론이 합쳐져 만든 신경망은 입력층,은닉층,출력층으로 나뉘어집니다. 여기서 입력층은 말그대로 데이터의 입력이 들어오는 부분입니다. 은닉층은 예측값 즉 출력층에 나오는 결과값들을 계산하는 층인데 실제로 신경망을 이용하여 누군가한테 결과를 보여줄때는 입력층과 출력층만을 보여주기때문에 계산을 해주는 은닉층은 보여주지 않습니다. 그래서 은닉층이라 부릅니다. 은닉층에서는 활성화함수를 이용하여 입력된 값을 비선형함수로 만들어준 후 이후 결과값을 다음 층에 보여줍니다. 여기서 h(x)는 활성화 함수를 의미하고 z는 활

[ 몽총이 파이썬 딥러닝 공부 - 03 ] 신경망 학습/경사하강법 개념 [내부링크]

신경망이 학습을 한다는 것은 예측값과 실제값의 오차를 줄이는 최적의 가중치와 편향을 찾는 과정을 말합니다. 그래서 결국엔 오차를 어떻게 찾는지가 중요한데, 이러한 오차를 계산하는 함수를 손실함수(loss function)이라고 부릅니다. 위의 두개의 표는 위의 표는 첫 예측값이고 아래의 표는 첫 예측값에 따른 오차를 찾은 후 다시 예측값을 했을 때의 결과를 임의적으로 표현한 것입니다. 이처럼 오차를 줄일 수 있는 가중치와 편향을 찾는 것이 신경망 학습의 목표 입니다. 일반적으로 손실함수는 두가지로 오차제곱합과 교차 엔트로피 오차를 사용합니다. 원래 기존의 오차 제곱합의 경우 2로 나누는 것을 볼 수 있는데 이것은 추후 경사하강법에서 미분을 하게 되는데 이 부분에서 좀 더 편하게 계산을 하기 위해서 2로 나눠줍니다. ( 오차제곱합은 기존의 평균오차제곱합에서 전체 개수로 나누는 것이 아닌 2로 나눠줍니다. ) 교차 엔트로피는 식을 보면 정답 데이터의 경우면 1이되고 나머지는 0이 됩니다

[ 몽총이 파이썬 딥러닝 공부 - 04 ] 오차역전파법 개념 [내부링크]

오차역전파법을 하기위해서는 계산그래프라는 개념을 알아야합니다. 위처럼 나타낸 것이 계산 그래프입니다. 계산그래프를 나타내는 큰 이유는 이해를 쉽게 하기 위해서 입니다. 계산그래프의 특징은 '국소적 계산'을 할 수 있다는것이 가장 큰 특징입니다. 국소적 계산은 전체 계산과 상관없이 자신과 관계된 정보만으로 결과를 출력할 수 있습니다. 즉, 계산을 단순화시켜 쉽게 계산을 볼 수 있습니다. 하지만 가장 중요한 이유는 역전파할때 '미분'을 통해 효율적으로 계산할 수 있다는 점입니다. 기존의 계산들은 다 순전파로만 계산을 했고, 순전파는 말그대로 그냥 순서대로 계산(?) 했다고 생각하면 되고 그것의 역으로 계산하는 과정을 역전파입니다. 이것은 위의 계산을 역전파로 계산한 결과를 보여줍니다. 기본적인 역전파를 보기 위해 덧셈노드와 곱셈노드의 역전파를 직접 계산과정을 만들어봤습니다. 역전파의 제일 중요한 부분은 Chain Rule 입니다. 이 부분은 그렇게 어렵지 않기 때문에 따로 넣지는 않았습

[ 몽총이 R 기초 공부 - 05 ] 신경망 [내부링크]

5.1 신경망 ( Neural Network ) 수많은 데이터를 기계학습을 통하여 행렬을 구하는 과정을 하는데 이 과정에서 신경망을 이용한다. 신경망은 신경계의 기본 단위인 뉴런을 모델화 한 것이다. 인간의 뇌는 약 1000억개의 뉴런을 가지고 있어 어려운 이미지 인식과 같은 작업을 쉽게 할 수 있다. 하지만 컴퓨터는 위와 같은 작업을 하는데 어려움이 있다. 그리하여 이를 해결하기 위해 뉴런을 모델링화 한 것이 인공 뉴런이다. 하나의 인공 뉴런에서는 다수의 입력 신호 xi 를 받아서 하나의 신호를 출력한다. 이때 신호를 전달하는 역할을 인공뉴런에서는 가중치 wi 가 그 역할을 한다. 각 입력신호에는 고유한 가중치가 부여되며 가중치가 클수록 해당 신호가 중요하다고 볼 수 있다. 뉴런에서 임계값 이상이 주어져야 감각이 반응하는 것처럼 인공 뉴런에서도 다수의 입력 신호가 주어지면, 가중치와 계신을 한 후 그 값이 임계값을 넘으면 1을 출력하고, 넘지 못하면 0을 출력한다. 이때 출력을 결

[ 몽총이 파이썬 머신러닝 공부 - 01 ] - 머신러닝 이해,Numpy [내부링크]

지금까지 머신러닝을 위해 선형대수학과 통계학을 공부한 후 조금 부족했던 부분은 머신러닝을 공부하면서 이해하고자 해서 머신러닝에 대해서 공부를 시작했습니다.. 1.1 머신러닝이란 우선 머신러닝이란 데이터를 기반으로 예측 오류를 최소하하기 위해 다양한 수학을 적용해 데이터 내에서 패턴을 학습하고 예측하는 알고리즘 기법이다. 머신러닝에는 지도학습과 비지도학습으로 나뉘어져 있으며, 지도학습의 대표적인 머신러닝학습은 분류와 회귀이다. 비지도 학습은 차원축소,강화학습 등이 있다. 파이썬 머신러닝에서 주로 사용하는 패키지는 총 4가지가 있으며 1. 머신러닝 패키지인 사이킷런 2. 행렬/선형대수/통계 패키지인 Numpy와 Scipy 3. 데이터 핸들링 패키지인 Pandas 4. 시각화 패키지인 - Matplotlib, Seaborn 여기서 데이터 핸들링이란 자료 정렬, 입출력 연산, 보고서 작성 같이 배부분의 사용자가 공통적으로 수행하는 데이터이다. 1.2 Numpy Numpy는 선현대수 기반의

[ 몽총이 파이썬 머신러닝 공부 - 02 ] 판다스 ( Pandas ), DataFrame [내부링크]

2.1 판다스 ( Pandas ) 머신러닝에서 주로 사용하는 데이터 핸들링 패키지중 하나인 판다스는 우리가 가장 이해하기 쉬운 2차원 데이터를 효율적으로 처리할 수 있는 기능을 준다. 판다스의 핵심 객체 DataFrame은 2차원을 담는 데이터 구조이다. 판다스를 시작하기에 앞서 몇개의 단어를 미리 알고 가면 더 이해하기가 쉽다. Index : 개별 데이터를 고유하게 식별하는 Key Series : Colum이 하나뿐인 데이터 구조체 DataFrame : Colum이 여러개인 데이터 구조체 즉 Series 여러개가 합쳐지면 DataFrame이 된다. 우선 판다스를 쓸때는 대부분 엑셀파일로된 데이터를 불러와서 작업을 한다. 엑셀 파일을 불러오기 위해선 read_csv('경로') 를 이용해 csv 파일을 가져온다. 여기서 경로는 절대경로를 의미하며 불러올 파일의 속성에서 경로를 복사 붙혀넣기 하면 된다. 만약 오류가 발생한다면, \ 이렇게 되어있는 것을 / 이것으로 바꿔주어 실행하면 해

[ 몽총이 파이썬 머신러닝 공부 - 03 ] DataFrame [내부링크]

3.1 DataFrame Data관리하기 3.1.1 DataFrame 데이터 생성과 수정 DataFrame의 데이터는 ' [ ] ' 를 이용해 데이터를 생성과 수정을 할 수 있다. 아래는 기존 col1과 col2만 있는 데이터에 col3 과 col4를 생성하고 수정한 것이다. 데이터의 생성은 간단하기 데이터명['추가할 colum명'] = 값 을 통해 데이터를 추가할 수 있다. 그리하여 list_df['col3'] = 0 을 입력하면 새로운 col3이 생성되고 값이 0으로 된다. 만약 각 index마다 값을 넣어준다면 list_df['col3'] = [1,2] 이처럼 list를 만들어서 넣어주면 된다. ( 기존에 0으로 되어있는 col3을 [1,2]로 바꿀수 있다. ) 위 코드에서는 주석처리를 통해 수정된 데이터가 출력이 안되었는데 A_df가 col3을 1,2로 수정한 데이터이다. 추가적으로 생성할때는 기존의 데이터를 이용하여 만들 수 있다. col4는 기존의 데이터 col1과 col

[ 몽총이 파이썬 머신러닝 공부 - 04 ] DataFrame [내부링크]

4.1 DataFrame 연산자 4.1.1 DataFrame '[ ]' 연산자 DataFrmae 의 [ ] 는 칼럼만 지정할 수 있는 ' 칼럼지정연산자 ' 이다. [ ] 안에는 칼럼명 문자 혹은 인덱스로 변환 가능한 표현식이 들어갈 수 있다. [ ] 안에는 칼럼명 위 코드에서 'col1', 'col2' 가 들어가있는 것을 볼 수 있다. 하지만 중간에 [0:2] 이런식의 코드가 있다. [ ] 는 칼럼지정연산자인데 인덱스가 들어가있다. 이 [ 0:2 ] 는 인덱스 변환이 가능한 연산자 이기 때문에 들어 갈 수 있는 코드이다. 하지만 [0],[0,1,2] 같은 특정 인덱스를 지정하는 것은 불가능하다. 직접 입력해보고 실행하면 오류가 나는 것을 확인할 수 있을 것이다. 이처럼 [0:2] 는 되는데 [0] 이 안되는 이유는 [0:2] 같은 슬라이싱이 되어서 컴퓨터가 자동으로 인덱스로 인식해서 그런게 아닐까 생각이 든다. 하지만 [0] 같은 경우에는 여기에 칼럼명이 들어가야하는데 칼럼이 아니라

[ 몽총이 파이썬 머신러닝 공부 - 05 ] 사이킷런 [내부링크]

5.1 사이킷런 사이킷런은 파이썬 기반의 머신러닝을 위해 가장 많이 사용되는 라이브러리 이다. 사이킷런의 특징은 머신러닝을 위한 다양한 알고리즘과 개발이 편리한 프레임워크와 API를 제공한다. 사이킷런 패키지 내 모듈 1. sklearn.datasets 내의 모듈 : 사이킷런에서 자체적으로 제공하는 데이터 세트를 생성하는 모듈 2. sklearn.tree 내의 모듈 : 트리기반 ML 알고리즘을 구현한 클래스의 모듈 3. sklearn.model_selection : 학습 데이터와 검증 데이터, 예측 데이터로 데이터를 분리하거나 최적의 하이퍼 파라미터로 평가하기 위한 다양한 모듈 하이퍼 파라미터란 머신러닝의 알고리즘에 최적의 파라미터를 찾아 학습을 할 수 있게 해주는 역할을 한다. 5.2 사이킷런을 이용한 머신러닝 붓꽃 품종 예측하기 5.2.1 붓꽃 데이터 만들기 사이킷런에는 직접 활용을 할 수 있는 여러 예제 데이터들이 존재하는데 붓꽃 데이터는 그중 하나이다. 붓꽃 데이터는 from

[ 몽총이 파이썬 머신러닝 공부 - 06 ] 교차 검증 [내부링크]

6.1 교차검증 교차 검증은 데이터 편중을 막기 위해서 별도의 여러 세트로 구성된 학습 데이터 세트와 검증 데이터 세트에서 학습과 평가를 수행하는 것이다. 만약 학습데이터에만 과도하게 최적화되어, 예측을 다른 데이터로 수행할경우 예측 성능이 떨어질수 있다. 이러한 문제점을 해결하기 위해서 교차 검증을 이용한다. 6.1.1 K 폴드 교차 검증 K 폴드 교차 검증은 가장 보편적으로 사용되는 교차검증 기법이다. 먼저 K 개의 데이터 폴드 세트를 만들어서 K 번 만큼 각 폴드 세트에 학습과 검증 평가를 반복적으로 수행한다. 만약 K가 3이라고 가정했을때 이러한 식으로 교차검증을 수행한다. 붓꽃 데이터를 이용해 K폴드 교차 검증으로 평가를 했을 때 나온 결과를 보면 좀 더 쉽게 내용을 이해할 수 있다. 6.1.2 Stratified K 폴드 Stratified K 폴드는 불균형한 분포도를 가진 레이블 데이터 집합을 위한 K 폴드 방식이다. 불균형한 분포토를 가진 레이블이란 데이터 집합에 특정

[ 몽총이 파이썬 공부 - 8 ] 이차형식 [내부링크]

8.1 이차형식 두 변수 x,y를 갖는 이차곡선의 방정식은 ax2 + 2bxy + cy2 + dx + ey + f = 0 의 형식으로 나타내며 이것을 행렬로 표현할 수 있다. < R2 에서의 이차형식 > R2 에서의 이차형식은 ax2 + 2bxy + cy2 의 형식으로 표현하고, 이것을 이차곡선의 방정식에 대한 이차형식이라고 한다. 2차항들로만 이루어진 ax2 + 2bxy + cy2 , x2 + y2 은 이차형식이고, ax2 + 2bxy + cy2 + 1 의 경우에는 1이 2차항이 아니므로 이차형식이 아니게 된다. 이와 같은 형식을 일반적인 이차형식이라 하며 일반적인 이차형식은 행렬을 도입하여 행렬 곱의 형태인 xTAx 꼴로 표현할 수 있다. 행렬 A∈M 가 대칭행렬일 때, A의 이차형식 q(x) = xTAx 는 다음을 만족하게 된다. 1. A의 고유값들이 모두 양이라면 q(x)는 양의 정부호 이다. 2. A의 고유값들이 모두 음이라면 q(x)는 음의 정부호 이다. 3. A가 양과

[ 몽총이 파이썬 공부 - 9 ] 일변수함수와 미적분 [내부링크]

9.1 함수 예제 1. 주어진 함수의 그래프 그리기 주어진 두개의 함수의 그래프를 그리기위해 plot() 함수를 이용한 후 x축의 범위를 지정하기 위해 np.linspace() 함수를 이용하여 범위를 지정 후 plot(x,y)로 그래프를 그렸다. 예제 2.주어진 함수의 그래프 그리기 예제 1과 풀이는 동일하게 하였고, 식만 다르게 하여 그래프를 그렸다. 9.1의 함수는 기본적으로 함수 그리는 법을 위주로 되어있어 내용보다는 예제문제 위주로 되어있어 예제만 풀었습니다 9.2 극한 x 가 a에 접근할 때 f(x)는 b에 수렴하고 b를 f(x)의 극한이라고 부르며 limf(x) = b (x->a) 라고 한다. 만약 수렴하지 않는다면 발산이라고 한다. 극한에서는 좌극한과 우극한이 존재하고 f(a)가 존재하여 이 셋의 값이 모두 같으면 함수 f(x)는 a에서 연속이라고 할 수 있다. 예제 3. 다음 주어진 식의 극한 구하기 극한의 경우에는 limit() 함수 혹은 Limit()함수를 이용할

[ 몽총이 파이썬 공부 - 10 ] 다변함수와 미적분 [내부링크]

10.1 벡터와 공간기하 예제 1. 3차원 공간에서 그래프 그리기 파이썬 내에서 3차원을 그리기 위해서 form mpl_tookits.mplot3d import Axes3D 라이브러리를 추가해줘야한다. 이후 projection='3d' 를 적어주어 3차원의 공간을 만들어주어 x,y,z를 입력받아 그래프를 그려준다. 예제 2. 주어진 벡터의 그래프를 그리고 그 합의 그래프 그리기 외적은 cross prorduct라고 A x B 라고 쓸 수 있다. C-S 부등식 : | x * y | ≤ || x || || y|| 에 대해서 -1 ≤ || x || || y|| / | x * y | ≤ 1 이며, | x * y | = || x || || y|| cosΘ dlek. 이때의 Θ를 x와 y가 이루는 사이각 이라고 한다. 예제 3. 두 벡터의 내적,외적,사이각 구하기 내적은 dot() 함수로 외적은 cross() 함수로 사이각은 위의 C-S 부등식의 식을 이용해 각을 구할 수 있다. 10.2 벡터

[ 몽총이 R 기초 공부 - 01 ] 순열,조합,확률 [내부링크]

머신러닝을 공부할때 필요한 기초 통계학 및 확률론 개념이 필요하다고 하여, 데이터 분석에서 많이 활용되고 있는 통계프로그램 R 프로그래핑과 함께 기초 통계 및 확률을 공부하고자 한다. 0.1 R 명령어 예제 1. 도수분포표, 윈도표, 막대도표 주어진 데이터를 cbind()를 통해 도수분포표를 만들 수 있다. pie()는 원도표를 나타낼 수 있고, barplot()은 막대도표를 만든다. < 용어 > n 개의 표본 자료를 x1,x2,...xn 이라 할때 표본 평균 X는 X = (x1+x2+...xn ) / n 으로 계산할 수 있다. 표본평균을 X라 했을 때 표본분산 s2 는 s2 = 1 / n-1 Σi ( xi - X )2 으로 나타낼 수 있고, 표본표준편차 s = + sqrt(s2) 이다. 이러한 표본자료를 크기순으로 나열했을 경우에 중위수는 n 이 홀수 이면 중위수는 n+1 / 2 번째 관측값이며 n 이 짝수라면 중위수는 n/2 번째와 n/2 + 1 번쨰 관측값의 평균이다. 즉 중위

[ 몽총이 R 기초 공부 - 02 ] 확률변수 [내부링크]

2.1 확률변수, 기댓값, 분산 및 표준편차 확률변수 : 일정한 확률을 갖고 발생하는 사건에 수치가 부여되는 함수 즉, 표본 공간의 모든 표본에 대해 어떤 실수 값을 할당한 것이다. 즉 예를 들면 동전 2개를 동시에 던질때 뒷면이 나오는 동전의 개수를 확률변수 X라고 했을 경우에 뒷면이 나오는 경우의 수는 총 0, 1, 2, 이렇게 세가지가 존재하고, 그러므로 확률변수 X = 0,1,2 를 할당할 수 있다. 확률변수 X가 가질 수 있는 값의 범위가 셀수 있는지 혹은 없는지에 따라 이산확률변수와 연속확률변수로 구분한다. 확률분포 : 확률변수 X가 가지는 x에 확률 P(X=x)를 대응시키는 함수를 X의 확률분포라고 한다. X = x1,x2,x3...xn 이 있을 경우 확률 P = f(x1),f(x2),f(x3)...f(xn) 이다. 위 경우에는 x값의 수가 셀수 있기때문에 이산확률변수이고 f(x)를 X의 이산확률함수 혹은 확률질량함수(PMF) 라고 한다. < 확률질량함수(PMF)의 성질

[ 몽총이 R 기초 공부 - 03 ] 확률분포 [내부링크]

3.1 이산확률분포 이산확률분포에서는 베르누이 분포, 이항분포, 포아송 분포 등이 있다. 베르누이분포( Bernoulli distribution ) B(1,p) 베르누이시행은 1회 시행의 결과가 성공 혹은 실패 두가지중 하나로만 나오는 실험을 말한다. 큰 예시로 동전 던지기가 있다. 동전을 한번 던지는 시행에서 앞면이나오면 성공, 뒷면이 나오면 실패 이 두가지의 경우만 있고, 성공한 결과를 1, 실패한 결과를 0으로 나타낸다. 성공할 확률이 p인 베르누이 시행에서 확률변수 X의 확률분포는 P(X=x)=px(1-p)(1-x) 로 나타낼 수 있고, X~B(1,p)로 나타낸다. 베르누이에서의 확률변수 X의 기댓값은 E(X) = p, 분산은 V(X) = p(1-p)로 나타낸다. 예제 1. X의 확률분포 P(X=x) 구하기 베르누이시행은 R에서 dbinom(범위,1,prop)로 표현할 수 있다. 이항분포( Binomial distribution ) B(n,p) 이항분포는 베르누이 시행을 n번

[ 몽총이 R 기초 공부 - 04 ] 주성분분석 [내부링크]

4.1 주성분 분석 ( PCA ) 주성분 분석 PCA는 가장 널리 사용되는 차원 축소 기법중 하나이다. 이때 계산은 주로 행렬의 고윳값 분해 또는 특이값 분해를 사용한다. 차원 축소란 만약 데이터가 10차원 같은 고차원의 데이터가 존재했을 경우 이것을 시각화 하여 분석하는 것에 어려움이 있기때문에 이 데이터의 차원을 축소시켜주는 것을 의미한다. 즉 PCA는 데이터들을 정사영시켜 차원을 낮추었을 때, 어떤 벡터에 정사영시켜야 데이터 구조가 제일 유지가 잘 되는지를 확인하는 것이다. PCA는 기존의 변수를 일차 결합하여 서로 선형 연관성이 없는 새로운 변수, 주성분(PC) 들을 만들어낸다. 첫 번째 주성분 PC1은 데이터의 분포를 가장 많이 보존하고, 두번째 주성분 PC2가 다음으로 가장 많은 분포를 보존한다. 이렇게 주성분들은 데이터의 분포를 보존하고, 이것은 만약 주성분들이 데이터의 90%를 보존하고 있다면, 나머지 10% 정도는 정보가 없어도 차원을 줄여 데이터를 확인할 수 있다는

[ 몽총이 파이썬 공부 - 4 ] 일차독립과 기저 및 차원 [내부링크]

사실 아직도 이해를 잘 못하겠습니다... ㅠㅠ 4.1 일차독립과 부분공간 일차독립이란 Rn의 부분집합 { x1,x2,....xk } 에 대하여, 벡터 x ∈ Rn 이 x = c1x1 + c2x2 + ... + ckxk, c1,c2....ck ∈ R의 꼴로 표시되면, x 벡터를 x1,x2,...xk의 일차결합이라고 한다. 여기서 c1x1 + c2x2 + ... + ckxk = 0, c1=c2=....=ck = 0 이 성립되면, 이때의 x벡터는 일차독립이라고 하며, 이 경우가 아니면 일차종속이라고 한다. 즉 일차종속은 c값이 0 이 아닌 경우를 뜻한다. 일차독립 판정법 : 일차독립일 필요충분조건은 행렬식이 0이 아니어야한다. 즉, 행렬 A가 있다면 det(A) ≠ 0 이라면 일차독립이고 det(A) = 0 이라면 일차종속이다. 예제 1. 주어진 세 벡터에 대해 행렬식을 이용한 일차독립 판정하기 세 벡터가 주어졌으므로 세 벡터를 하나의 벡터로 만들어준다. 이후 det() 함수를 이용해 행

[ 몽총이 파이썬 공부 - 5 ] 선형변환 [내부링크]

5.1 선형변환 변환 ( Transformation ) 은 입력과 출력이 모두 벡터인 함수를 말한다. 행렬변환 ( matrix transformation ) : A가 mxn 행렬이고 T(x) = Ax이다 , T : Rn -> Rm 에 의해 행렬이 변환되는 경우를 의미 T : Rn -> Rm : n차원 벡터를 m차원 벡터로 변환을 의미 선형변환 ( linear transformation ) : T : Rn -> Rm 에 의해 변환시 T(u+v) = T(u) + T(v) 그리고 T(ku) = kT(u) 두가지 조건을 만족하는 변환을 선형 변환이라고 한다. T : Rn -> Rm 을 임의의 선형변환이라고 할때 Rn의 기본단위벡터 즉, 표준기저 e1,e2.....,en 에 대해 x = x1e1+x2e2+..+xnen | x ∈ Rn 를 의미한다. 3차원 벡터의 경우 표준기저는 e1 = ( 1,0,0 ) e2 = (0,1,0) e3 = (0,0,1) 을 의미한다. 그럼 T(x) = x1T(e

[ 몽총이 파이썬 공부 - 6 ] 고유값, 고유벡터, 대각화 [내부링크]

6.1 고유값과 고유벡터 A를 n차의 정사각행렬이라고 했을때. 스칼라 λ에 대해서 Ax = λx를 만족하면, 이때의 λ를 A의 고유값( eigenvalue ) 이라 하고, x를 λ에 대응하는 A의 고유벡터( eigenvector ) 라고 한다. Ax = λx => Ax = λInx => (λIn - A)x = 0으로 표현할 수 있으며 Ax = λx 에서 x ≠ 0 이므로 (λIn - A) = 0 은 0이 아닌 해를 가져야한다. 이때의 λIn - A 를 특성방정식이라고 한다. 예제 1. 주어진 행렬의 고유값과 고유벡터를 구하라. 파이썬에서는 고유값과 고유벡터를 간단하게 eigenvals() 와 eigenvects() 함수를 이용해 구할수 있다. 위 두함수를 이용해 고유값과 고유벡터를 구해준 후 Ax = λx가 성립하는지 확인을 위해 직접 연산을 해주었고, 위 식이 성립한다는 것을 볼 수 있었다. 6.2 닮음 행렬과 행렬의 대각화 닮은 행렬은 정사각행렬 A,B에 대해서 가역행렬 P가 B

[ 몽총이 파이썬 공부 - 7 ] SVD ( 특이값 분해 ) [내부링크]

아직 재대로 이해를 못해서 나중에 진도 다 끝내구 처음부터 정독하며 이해하고자 합니다..ㅠㅠ 7.1 특이값 분해 행렬 A 는 A = U∑VT 로 분해될 수 있다는 것이 행렬의 특이값분해 SVD 라고 한다. 임의의 행렬 A에 대해서 ATA 와 AAT 는 대칭행렬이므로 직교 대각화가 가능하다. 이를 이용하면 특이값분해 SVD를 얻을 수 있다. 특이값 분해 공식 A = U∑VT 는 아래의 행렬처럼 나타낼 수 있다. 이때 U 행렬을 Left singular vector V 행렬을 Right singular vector 라고 한다. 여기서 V와 U는 대칭행렬 A를 직교대각화하는 직교행렬이다. 여기서 σ1σ2 .... σk 들은 행렬 A의 고유값의 루트를 씌운 값이다. 즉 σ1σ2 .... σk 의 각각의 제곱은 고유값이다. 예제 1. 주어진 대칭행렬의 특이값분해 (SVD) 구하기 예제에 나와있는 내용을보면서 어찌어찌 적었는데 코드 자체를 이해를 못해서... 파이썬 내에 left_eigenve

[ 몽총이 파이썬 공부 - 2 ] 선형연립방정식 [내부링크]

이해는 되는데 코딩으로 바꿀려니 생각이 안나서 인터넷 여기저기 막 찾다가 겨우 했습니다..ㅠㅠ 2.1 선형연립방정식 아래의 사진과 같은 식들을 선형방정식이라 하며, 미지수(x) 에 관한 유한개의 선형방정식의 모임을 선형연립방정식이라고 한다. 만약 여기서 상수항 b가 모두 0 일경우에는 동차선형연립방정식이라고 한다. 즉, 선형연립방정식은 Ax = B 형태이며 동차선형연립방정식은 Ax = 0 형태를 의미한다. 일반적으로 주어진 선형연립방정식은 세가지중 한가지를 무조건 만족한다. 1. 유일한 해를 가진다. 2. 무수히 많은 해를 가진다. 3. 해를 갖지 않는다. 선형연립방정식을 행렬 우측과 좌측을 행렬로 나타내고, ( 좌측은 계수와 미지수를 따로 행렬로 나타낸다 ) 그 두개의 행렬을 합친것을 아래의 이미지처럼 첨가행렬이라고 한다. 여기서 A부분의 행렬은 계수행렬이라고 한다. 예제 1. 선형연립방정식을 행렬의 곱을 이용해 나타내고, 첨가행렬 구하기 전 장에서 벡터를 표시하는 것처럼 주어진

[ 몽총이 파이썬 공부 - 3 ] 행렬과 행렬식 [내부링크]

3.1 행렬 연산 행렬의 덧셈 혹은 뺄셈, 그리고 상수배의 곱셈의 경우에는 두 행렬의 크기가 서로 같아야 한다. 즉, A = 2x2 행렬이라면 B = 2x2 행렬이어야한 서로 연산이 된다. 예제 1. 두 행렬에 대한 연산 단순한 연산이기에 행렬을 표현할때 그냥 numpy함수를 이용해서 행렬을 표현해줬다. 행렬끼리으 곱의 경우에는 위의 연산과는 조금 다르게 적용이된다. A = 2x2 행렬이고 B = 2x3 행렬이라고 생각하면 AB = C(2x3) 행렬이 된다. 즉 A의 행과 B의 열이 행렬 곱의 크기를 정해준다. 예제 2. 주어진 행렬에 대해 곱 행렬의 product 곱이므로 기호(*)로만 사용하여 계산하면 된다. 1. 영행렬 (zero matrix) 은 모든 성분이 0인 행렬을 말한다. 2. 단위행렬 (identity matrix) 은 주대각성분이 모두 1이고 나머지 성분은 0인 정사각행렬이라고 말한다. 3. 전치행렬 (transpose) 은 기존의 행렬의 행과 열을 바꾼 행렬을 말

[ 몽총이 선형대수학 파이썬 공부 - 1 ] 벡터 [내부링크]

이번에 머신러닝쪽을 공부를 해보기로 해서 일단 기본적인 선형대수학을 공부해야한다고 해서 선형대수학을 공부하며 파이썬도 같이 공부하기 시작했습니다. 이제 막 공부를 시작해서 틀린부분이있을 수도 있어요 ㅠㅠ 포스팅의 목적은 개인적인 공부 정리를 위해서 할 생각입니다. 1.1 벡터 스칼라? 길이, 넓이, 질량, 온도 - 크기만 주어지며 완전히 표시되는 양 ( 실수 ) 벡터란? 힘,속도,가속도 - 방향과 크기를 모두 포함하는 물리량 ( 화살표로 표현 ) * 시작점과 끝점이 같아서 크기가 0 인 벡터를 영벡터라고 하며, 크기가 0 이므로 방향은 임의의 방향으로 한다. * 예제 1.두 벡터의 사칙연산 두개의 벡터를 임의의로 정해주고, 사칙연산을 출력 파이썬에서는 벡터를 배열로 표시하여 array함수를 사용한다. 아래 명령창을 보면 사칙연산이 재대로 실행되는 것을 확인할 수 있다!! import numpy as np : 선형대수학의 문제를 다룰수 있게 해주는 라이브러리 array는 벡터와 관련되