본문 바로가기
728x90

HOOAI751

[Programming 질문] Injective, Surjective, Bijective Injective, Surjective, Bijective 이해가 잘 되지 않아요. Injective, Surjective, Bijective란 컴퓨터 공학 학부생이라면 Discrete Mathematics나 Calculus에서 배우는 Functions이다. 전공자라면 기본적으로 배우는 함수이기 때문에 알고 있지만 오랜만에 들어보거나 실제로 활용하려고 하면 헷갈리는 부분이 생기기 마련이다. 예를 들어 수학적 관점에서의 Injective, Surjective, Bijective functions들에 대한 문제 해결은 쉬울 수 있지만 이것을 프로그래밍 언어로 적용해서 infinite 값에 결괏값을 산출하기 위한 코딩을 한다면 "Wow"라는 생각이 든다. 한마디로 Functions들에 대해 알고는 있지만 명확.. 2021. 1. 28.
[Data Science] 딥러닝 레이어(Deep Learning Layers) Q: 딥러닝 할 때 레이어라는 표현을 쓰잖아요 input layer 층이라던가 그 레이어를 뭐라고 생각하는 게 좋을까요? 처음 보거나 이해하기가 어렵다면 사전적 의미를 찾아보는 방법이 정말 좋다. 사전적 의미를 찾는 게 별거 아닌 것 같지만 의미를 파악하고 알고자 하는 내용을 살펴본다면 머릿속에서 자연스럽게 정리가 되기 때문에 개인적으로 좋은 방법이라고 생각한다. 딥러닝 레이어란? 레이어(Layers)란 사전적 의미에서 "층"을 의미한다. 딥러닝에서 레이어는 단계를 의미하는 층이라고도 볼 수 있지만 겹겹이 쌓은 양파를 생각하면 이해하기 쉽다. 양파가 여러겹으로 둘러싸여 있는 것처럼 딥러닝(Deep Learning)에서 말하는 레이어는 이와 비슷하다. 딥러닝은 수많은 변수들을 다양한 알고리즘을 통해 병렬 .. 2021. 1. 25.
[파이썬 예제코드] tkinter를 활용한 폴더 선택하기 tkinter를 활용한 폴더 선택하기 #HOOAI import tkinter from tkinter import filedialog root = tkinter.Tk() root.withdraw() dirPath = filedialog.askdirectory(parent=root, initialdir="/", title='폴더를 선택해주세요.') 코드 설명 프로그램 사용자가 폴더를 선택할 수 있도록 시각적으로 표현될 수 있게 해주는 코드입니다. tkinter 패키를 활용하여 구현할 수 있으며, 폴더 선택 창의 제목 또한 변경이 가능합니다. 예제 코드를 활용하는 방법!! 1. 예제 코드를 보고 직접 컴파일을 해보세요. 예제 코드를 보기만 해도 좋지만, 각 기능이 어떤 역할을 하며 어떻게 결과 값이 산출되는지.. 2021. 1. 20.
[파이썬 질문] 파이참에서 %matplotlib inline 안될때 파이참을 통해서 간단한 프로그램을 개발하고 있는데 %matplotlib inline이라는 코드가 있습니다. 문제는 해당 코드가 인식이 되지 않고 에러가 나오는데 왜 그런 건가요? %matplotlib inline는 무슨 의미인가요? 파이썬 언어를 기반으로 프로그래밍을 배우다보면 자주 볼 수 있는 코드가 %matplotlib inline이다. 거두절미하고 Matplotlib은 데이터 시각화를 하기 위한 패키지이다. 구현하고자하는 프로그램을 시각적으로 보여주는 기능을 하는데 예를 들어서 데이터를 시각적으로 보이기 위해 차트나 수치를 화면 창으로 표현주는 역할을 한다. 그렇다보니 인공지능 프로그래밍에서는 자주 사용하게 되는 패키지라고 볼 수 있다. 다시 본론으로 돌아와서 Bro가 질문한 파이참에서 %matpl.. 2021. 1. 17.
[Python] open cv란? 인공지능이라고 한다면 컴퓨터가 사람처럼 생각하고 자율적인 사고판단하에 결괏값이 산출되기를 원한다. 컴퓨터가 현실의 사물을 판단하기 위해서는 컴퓨터를 위한 눈이 필요한데, open cv 라이브러리는 컴퓨터가 사물을 인식할 수 있도록 도와준다. open cv 라이브러리가 개발된 목적은 실시간으로 컴퓨터 비전을 목적으로 한 프로그래밍이었지만 안정화와 대중화를 통해 open cv는 다양한 이미지나 영상을 판단하고 원하는 목적으로 결과값을 산출할 수 있도록 도와준다. 인텔 주도하에 개발이 이루어졌지만 제일 중요한 점은 무료로 사용이 가능하다는 것이다. 너무나도 감사하게 무료로 사용할 수 있는 BSD 라이선스이었기 때문에 open cv 개발자와 원저작자에게 감사할 따름이다. 여기서 유의할 점은 open cv에 대한.. 2021. 1. 15.
데이터 경제 시대란? Q: 4차 산업 시대 도래로 데이터 경제 시대로 전환된다고 하는데 무슨 말인가요? 불과 4년 전까지만 해도 4차 산업 기술에 대한 관심이 뜨거웠다. 4차 산업 시대가 도래함으로써 4차 산업 기술이 미치는 사회적 영향력에 대해서 포스팅을 하거나 잡지사와 인터뷰를 했던 게 어제인 것 같다. 특정 출판사에서 블록체인에 대한 책을 써보면 어떠냐고 이메일이 왔었던 게 불과 3년도 안되었다. "라떼(는 말이야)" 얘기를 꺼내는 시점에서 필자도 나이가 들고 꼰대화가 되어 간다는 걸 느끼지만 정말로 4차 산업 기술은 순식간에 다양한 분야에 적용되어 사용되어지고 있다. 4차산업시대와 데이터 경제 4차 산업 기술에 해당하는 대표적인 기술로는 클라우드 컴퓨팅, 인공지능, 빅데이터, 블록체인, IoT 등이 있다. 물론 드론이.. 2020. 12. 10.
[Q&A] 1년차 개발자인데 백엔드 개발자로 가고 싶습니다. 1년 차 프론트엔드 개발자인데 백엔드 개발자로 가고 싶습니다. 방명록을 통해 질문을 주신 내용이다. 프로그래머로 회사에 들어가기 전에는 이런 생각을 하는 친구들이 꽤 있다. "회사 가서 내가 맞는 분야를 공부하면 되지." "힘들지만 일하면서 내가 틈틈이 공부하면 될 거야." 시니어 개발자분들 중에서도 "일하는 게 다 실질적인 경험이고 실력이야."라는 말을 하신다. 그러다 보니, 이 말만 믿고 직장에 들어가서 일과 공부를 같이할 생각이라면 쉽지 않다. 한마디로 프론트엔드 개발자로 일을 하면서 백엔드 개발자로 이직을 한다는 건 현실적으로 쉽지 않은 일이다. 물론, 기업에서 프로그래머 인력이 부족한 경우는 간단한 업무에 한해서 프론트엔드 개발자인데 백엔드 개발 업무를 지원할 수도 있고, 반대로 백엔드 개발자인.. 2020. 10. 29.
[Programming] Logical equivalence examples 1. p·1=p 11. p+(p·q) = p 2. p+1 = 1 12. p+¬p = 1 3. p+p = p 13. p+0 = p 4. ¬(¬p) = p 14. p·p = p 5. p+q = q+p 15. p·q = q·p 6. (p+q)+r = p+(q+r) 16. (p·q)·r = p·(q·r) 7. p+(q·r) = (p+q) 17. p·(q+r) = (p·q)+(p·r) 8. ¬(p+q) = ¬p·¬q 18. ¬(p·q) = ¬p+¬q 9. ¬(p+q+r) = ¬p·¬q·¬r 19. p·(p+q) = p 10.(p·q·r) = ¬p+¬q+¬r 20. p·¬p = 0 [Programming] Logical Equivalences 논리에 대한 부분을 기호로 표시하는 방법이 바로 Logical equiv.. 2020. 10. 15.
[Programming] Propositional Logic Propositional Logic은 한국말로 명제 논리라고 부른다. 필자는 명제 논리라는 용어를 보고는 도저히 이해가 가지 않기 때문에 Propositional logic 원래 용어를 가지고 설명하겠다. Propositional logic은 내용에 대해서 true인지 false인지를 확인하는 과정이자 기호로 표기하는 방법을 의미한다. "미국남부형은 매력적이다"라는 문장이 있을 때 사실이기 때문에 true에 해당된다. "1+1 = 2" 라는 것도 사실이기 때문에 true에 해당한다. 이러한 문장이나 내용에 대한 논리의 참 거짓을 Propositional logic에서 Logic operations들을 활용해 표기한다. Logic operations Negation NOT ¬p, p' Conjunction.. 2020. 10. 15.
[Programming] Logical Equivalences 논리에 대한 부분을 기호로 표시하는 방법이 바로 Logical equivalences이다. 명제에 대한 논리가 맞는지를 확인할 수 있으며, 참과 거짓 둘로 구분하여 결과 값을 산출할 수 있다. ≡ Logical equivalences에서 사용하는 부등호는 ≡이다. ≡는 논리적 항등식, =는 수학적 항등식이기 때문에 ≡를 사용하는 게 맞지만 공부할 때나 다른 사람과 소통만 된다면 사실 =를 사용해도 무방하다. ≡를 키보드에서 작성하기 매우 귀찮기 때문에 =를 실제로도 교수님들도 사용하는데 굳이 "저건 정확하지 않아요! 불편해요!"이라고 한다면 ≡를 사용하면 된다. 아무튼 필자는 미리 서로 이해만 된다면 둘다 상관없다고 본다. 프로그래밍만 잘하면 될 뿐. ¬ Logical equivalences에서는 NOT.. 2020. 10. 15.
[Q&A Programming] 신입 개발자의 취업 분야(2) 비전공자가 신입 개발자로서 취업할 수 있는 분야는 어떤 게 있을까요? 저번 "신입 개발자의 취업분야(1)" 포스트에서 왜 지금의 신입 개발자들은 어느 정도의 분야에 대한 지식과 선택이 필요한지에 대해서 알아보았다. 그렇다면 실제로 신입 개발자가 취업할 수 있는 프로그래밍 분야는 어떤 것이 있을까? 질문을 해주신 Kim님의 경우 비전공자이지만 프로그래밍을 공부하고 개발자로서 취업 준비를 하고 계신 분이다. 따라서 신입 개발자 중에서도 비전공자가 국내에서 취업할 수 있는 분야에 대해서 살펴보았다. 필자는 현재 실제로 어떤 분야에서 비전공자 신입 개발자를 뽑고 있는지를 살펴봄으로써 실질적으로 질문한 Bro에게 도움을 주고 싶었다. 왜냐하면 비전공자이면서 신입으로 프로그래밍 직장을 알아본다는 것은 다양한 Bro.. 2020. 10. 8.
[Programming] Axiomatic Semantics examples Axiomatic semantics에 대해서 이해가 되지 않는데 예제를 주실 수 있나요? Axiomatic semantics는 Denotational semantics의 한 종류이다. [Programming] Denotational semantics examples Denotational semantics(표시적 의미론) 예제를 보여주실 수 있으신가요? Denotational semantics(표시적 의미론)이란 컴퓨터 언어에서 계산식 또는 수학적 메커니즘을 개발자가 이해할 수 있는 방식으로 표�� whoishoo.tistory.com Axiomatic semantics 또한 프로그램에서 특정 logic이 어떤 식으로 작동하고 값이 산출되는지를 확인하기 위해서 사용된다. 한마디로 Axiomatic sem.. 2020. 10. 8.
[Programming] Denotational semantics examples Denotational semantics(표시적 의미론) 예제를 보여주실 수 있으신가요? Denotational semantics(표시적 의미론)이란 컴퓨터 언어에서 계산식 또는 수학적 메커니즘을 개발자가 이해할 수 있는 방식으로 표시한 것이다. 한마디로 프로그래밍에 있는 계산식을 Denotational semantics 방식의 문자로 표현했다고 보면 된다. 위의 문법은 Denotational semantics를 이해하고자 만든 example이다. Grammar와 Semantics를 통해 주어진 값을 어떻게 산출해야 할지 알 수 있다. 예를 들어, "cab"를 구한다고 가정해보자. 왼쪽부터 풀어주기 때문에 "cab"에서는 c의 값을 먼저 구해준다. c의 값을 구하면 c와 a는 'a'에서 c는 가 되고 '.. 2020. 10. 8.
[Q&A Programming] AI 프로그래머가 되고 싶은데 다방면에서 공부하는게 맞을까요? AI programmer가 되고 싶은 학부생입니다. 이것저것 알면 좋을까 해서 기계공학을 부전공으로 신청하고 전기전자공학 수업도 청강하고 있습니다. 최근에는 보안 쪽 수업도 들으면서 다양한 경험을 쌓고 있는데 잘하고 있는 건가요? 오랜만에 만난 Bro한테 들은 충격적인 말이다. 이 친구가 20살때 만났을 때는 프로그래밍에 대한 고집이 있었기에 구체적인 조언을 해줄 수가 없었다. 다른 직업도 마찬가지겠지만 프로그래머는 소통과 협업이 중요한 직업이기에 다른 사람의 지식을 수용하고 흡수할 수 있는 능력을 가져야 한다. 하지만 고집만 강한 사람은 누가 이야기를 해줘도 변함이 없기 때문에 솔직히 알아서 하겠지라는 마음으로 오랜만에 만난 Bro였다. 다행스럽게도 몇년 만에 만난 이 친구는 다소 변화되어 있었다. 하.. 2020. 10. 5.
[Python] Linked List example code #01 class Node: def __init__(self, datavalue=None): self.datavalue = datavalue self.nextvalue = None class LinkedList: def __init__(self): self.headvalue = None def listprint(self): printvalue = self.headvalue while printvalue is not None: print (printvalue.datavalue) printvalue = printvalue.nextvalue list = LinkedList() list.headvalue = Node("Howdi y'all.") l2 = Node("Welcome to HOOAI!") l3 = Node(.. 2020. 10. 2.
[Python] Linked List python 코드로 구현된 Linked List나 Tree Structures를 어떻게 하면 쉽게 이해할 수 있을까요? 프로그래밍에 대한 개념을 이해하고자 할 때 제일 좋은 방법은 해당 기능을 왜 사용하는지를 아는 것이 좋다. Bro가 질문한 Linked list(연결 리스트)나 Tree structures(트리 구조)에 대해 왜 사용하는지를 안다면 보다 더 쉽게 이해할 수 있을 것이다. 따라서 이번 포스트에서는 우선 Linked list가 무엇이며, 왜 사용하는지에 대해서 이야기를 나눠보도록 하겠다. 필자가 가장 먼저 하는 방법은 Linked list가 무엇인지에 대한 사전적 의미를 알고 가는 것이다. Linked list는 한국말로 연결 리스트라고 부르며 말 그대로 연결한다는 특징을 가진 리스트이다... 2020. 9. 30.
[Q&A Programming] AI 프로그래머가 되려면 선형대수학 알아야 하나요? AI 프로그래머가 되려면 선형대수학 알아야 하나요? AI 프로그래머에도 분야별로 다양한 종류의 프로그래머로 나뉜다. 하지만 공통적으로 AI 프로그래머는 AI 프로그램을 이용해서 각 분야에 원하는 프로그램을 개발한다. 따라서 구체적으로 따지면 다른 툴과 방식을 사용하지만 크게 보자면 공통적으로 AI 시스템을 사용한다는 것이다. AI, 즉 인공지능이란 사람의 뇌와 비슷한 구조를 가진 딥러닝 방식을 채택하여 만든 프로그래밍 방식이다. 한마디로 엄청난 알고리즘을 통해 다양한 경우의 수에 따른 결괏값을 도출해낼 수 있다. 이러한 다양한 경우의 수를 알고리즘을 통해 컴퓨터에게 알려줘야 하는데, AI 개발자는 알고리즘에 대한 방향성과 문제점을 인식하고 개발해나가야 한다. 이때 필요한 것이 선형대수학 즉, Linear.. 2020. 9. 28.
[Programming] 십진법의 소수점자리를 삼진법 소수점으로 변환하기 십진법에서 삼진법으로 변환하려는데 소수점은 어떻게 처리해야 할지 이해가 잘 안 가요. 십진법이라고 불리는 Decimal를 다른 진법으로 변환하는 거에 대해서는 알지만 소수점을 변환하는 건 잊어버렸거나 헷갈릴 수가 있다. 오래전에 배운 수학을 저 멀리 구석에 뇌 어딘가에 먼지가 쌓인 채 박혀있는 기억을 가져오려니 뇌가 아플 따름이다. 포스트를 보다 보면 기억이 날 테니 한번 같이 예제를 통해 살펴보도록 하자. 예를 들어, 십진법을 삼진법으로 변환한다고 가정해보자. (0.12)_10 = (._)_3 ? (_10은 진법을 의미한다고 가정하자.) 0.12*3 = 0.36 -> 0 0.36*3 = 1.08 -> 1 0.08*3 = 0.24 -> 0 0.24*3 = 0.72 -> 0 0.72*3 = 2.16 -> .. 2020. 9. 17.
[Programming] Affine cipher Affine cipher 이해가 되지 않아요. 필자가 늘 이야기하듯이 programming 관련된 용어에 있어서는 항상 사전적 의미를 알고 가면 매우 좋다. 왜냐하면 영어를 기반으로 용어가 만들어졌기 때문에 용어의 의미를 알고 간다면 쉽게 이해할 수 있다. Cipher이란 암호를 뜻한다. 쓰여 있는 암호를 Cipher라고 불렀으며, 반대로 DE를 앞에 붙임으로써 해독하다, 판독하다의 의미인 Decipher로 사용되는 단어이다. Affine cipher는 암호 중에서도 알파벳을 숫자로 변환하고 다시 숫자를 알파벳으로 변환할 수 있는 기본적인 programming 암호 방식에 해당한다. 이러한 알파벳을 이용한 기본적인 암호는 Affine 말고도 Caesar's cipher나 Shift cipher 등 다른 .. 2020. 9. 17.
[Q&A Programming] 신입 개발자의 취업 분야(1) 신입 개발자로서 취업할 수 있는 분야는 어떤 게 있을까? -Kim님- 개발자 또는 프로그래머라고 불리는 직업의 분야는 정말 다양하다. 어떻게 보면 프로그래머라는 직업 안에 수많은 직업이 속해있다고 볼 수도 있다. 프로그래머라는 직업의 분류는 업무 방식의 차이뿐만 아니라 실질적으로 배우는 내용도 달라진다. 예를 들어 보안 프로그래머를 만들고 관리하는 프로그래머와 필자처럼 AI(Artificial Intelligence) 프로그램을 만들고 관리하는 프로그래머가 가지고 있는 지식은 다르다. 프로그래머라는 직업은 공통적으로 배우는 지식은 있지만 전문화가 될수록 자신 분야의 프로그래밍만을 중심적으로 할 수 있지 외 적인 것까지 하기가 어렵기 때문이다. 필자도 마음 같아서는 모든 프로그래밍을 할 수 있는 사람이 되.. 2020. 9. 10.
[Q&A Programming] 프로그래머는 수명이 짧나요? "프로그래머는 수명이 짧나요?" 프로그래머(Programmer)라는 직업에 연관 검색어처럼 따라오는 말이 프로그래머는 수명이 짧다는 것이다. 프로그래머라는 직업에 관심을 갖는 브로들과 프로그래밍을 공부하고 있는 브로들, 그리고 연차가 많지 않은 현직 프로그래머 브로들도 이와 같은 고민을 한다. 필자에게 직접적으로 말을 하지는 않아도 이야기를 나누다 보면 아무래도 직업 수명에 대해서 고민도 많고 불안해한다. 거두절미하고 필자가 이런 고민을 가진 브로들에게 해주고 싶은 말은 본인 하기 나름이라는 것이다. 필자가 경험하고 바라보는 프로그래머라는 직업은 본인의 능력이 정말 중요하다. 장점이자 단점이 될 수도 있지만 본인이 얼마만큼의 능력을 가지고 있는지가 중요하다는 것이다. 프로그래머가 수명이 짧다는 말은 틀린.. 2020. 6. 23.
[Q&A programming] 실제로 업무 하다보면 게시판 같은 곳에서 토론하는 경우가 많나요? "실제로 업무 하다 보면 게시판 같은 곳에서 토론하는 경우가 많나요?" "방명록도 그래서 자주 쓰라고 하시는 건가 해서요." 필자는 이 질문에 대해서 창피함을 느꼈다. 필자는 그저 본인이 보기 편한 목적으로 블로그 방명록에 질문을 올려놓으라고 한 건데 이런 식으로 깊게 생각해줘서 고맙기도 하고 뭔가 앞으로는 의미를 내포해야 되나 고민을 하게 되었다. 아무튼 브로가 질문한 내용인 프로그래머와 커뮤니케이션에 대해서 이야기를 나눠보자면 정말 의외인 점이 많은 직업이 바로 프로그래머이다. 프로그래머는 대화가 중요하다. 미국 대학교에서 들어가면 영어 수업을 배운다. 한국에서는 대학생들이 필수로 한국어 수업을 배우지 않는 걸로 알고 있는데 내가 다녔던 학교에서는 영어 수업이 필수이다. Freshman 일명 신입생들.. 2020. 6. 15.
[Q&A Programming] 돈도 안되는 일을 왜 하는 거예요? "형 솔직히 바쁜 사람이 이런 거 왜 하는 거예요?" "이런 블로그 하면 무슨 도움이 되는 거예요?" 정말 특이하게도 이런 질문을 물어보는 브로들도 있다. 사람마다 생각이 다르다보니 필자에게는 정말 신선한 질문이다. 필자는 미국에서 medical science 분야를 공부하고 연구 의학 쪽으로 진로를 결정했었다. 하지만 필자는 자랑스러운 대한민국 국민이기에 국적을 변경하지 않았고 외부적인 요인과 상관이 없으면서 필자가 하고 싶었던 뇌 분야 연구를 할 수 있는 전공인 Computer science로 전과하게 되었다. 따라서 필자는 현재 Bio AI, Data science 분야를 공부하고 해당 분야에서 일을 하며 활동하고 있다. 필자가 일명 한국말로 컴공과로 전과했을 때 정말 많이 힘들었다. 전혀 생각지 .. 2020. 6. 12.
[Q&A] Q&A 포스트 안녕하세요. 미국남부형, HOO, whoishoo 입니다. 프로그래머라는 직업에 대해서 관심을 있거나 프로그래밍 자체에 대해서 관심 있는 모든 브로들과 직접 만나서 이야기를 하면 좋지만 현실적으로 제 몸은 하나이고 제가 해야될 일이 있다보니 모든 브로들과 이야기를 못하다보니 브로들과 이야기를 하기 위해 블로그를 개설했었습니다. 필자도 브로들과 이야기를 하면서 몰랐던 부분이나 새로운 것에 대해서 배워갈 수 있기에 프로그래밍에 대해 물어봐 주는 브로들에게 항상 고마움을 느낍니다. 제일 중요한 점은 필자는 수다로 스트레스를 푸는 사람이기에 이야기 하는 것을 무척 좋아합니다. 하지만 현재 블로그 운영까지 포함해서 6가지 일을 동시에 하다보니 매번 브로들에게 "포스트 매일 할게!" "자주 글 올려놓을게" 등등 이.. 2020. 6. 12.
[Q&A Programming] 비전공자인데 프로그래머를 해도 될까요? "HOO형 말 듣고 프로그래머에 관심이 생겼어요." "형이 프로그래머를 하려고 결정하기 전에 프로그래밍하는 게 자신과 맞는지 고민하라고 하셨는데" "솔직히 프로그래밍에 대해서 하나도 몰라서 뭘 고민하라는지 모르겠어요." 비전공자이든 전공자이든 필자는 멘토링 과정에서 두가지를 제일 중요하게 이야기한다. 첫 번째로 본인과 프로그래밍이 적성에 맞는가? 두 번째로 어떤 방향성을 가지고 어떤 프로그래머가 될 것인가? 사실 이 두 가지는 특별히 어려운 질문도 아니고 특별한 팁도 아니다. 그런데 웃긴 점은 이 두 가지에 대해서 깊게 고민하는 사람이 많지 않다는 것이다. 일단 본론으로 돌아와서 위의 질문한 친구는 한 명이 아니다. 한국에 있는 대학교에서 다른 전공에 있다가 필자를 알게 되고 필자와 상담을 통해 프로그래.. 2020. 6. 12.
[Q&A AI] 인공지능(AI)을 왜 알아야 하나요? 인공지능에 대해서 알아야 하는 이유가 뭔가요? 4년 전만 하더라도 4차 산업 시대가 도래했다고 이야기를 하며 강의를 시작했다. 이미 현재에는 4차 산업 기술이 많은 분야에서 활용되고 있으며 이제는 4차 사업 기술을 사용하지 않는 분야가 없을 정도이다. 4차 산업 기술의 오늘 4차 산업 기술 중에서도 대표적인 기술로 손꼽는 기술이 바로 인공지능, AI이다. 그렇다 보니 몇 년 전만해도 생소한 용어였던 AI가 이제는 한 번쯤은 들어봤을 만한 단어가 되어 버렸다. 그만큼 AI라는 것이 일상 생활에 밀접하게 연관이 되어 버린 것이다. 이제는 인공지능이 뭐야?라고 말하는 사람은 없지만 인공지능에 대해서 구체적으로 무엇인지 모르는 사람은 많다. 문제는 인공지능에 대해서 그다지 알고 싶어 하지도 않는 것이다. AI는.. 2020. 5. 29.
[Q&A AI에 빠지다] AI, 인공지능 책 어떤게 좋나요? "형 AI에 대해 공부하려고 하는데 어떤 책이 좋나요?" 프로그래밍에 대해서 공부를 시작하면 정말 막막합니다. 프로그래밍을 공부하는 친구들의 이야기를 들어보면 고민이 많다는 걸 느끼게 됩니다. 공부라는 것이 문제가 있으면 답이 있어야 하지만 프로그래밍이란 정답이 없습니다. 그렇다 보니 프로그래밍을 공부하는 것 자체가 어렵기보다는 일반적 관점의 공부와 접근 방법이 다르다 보니 여기서 어려움을 많이들 느끼는 것 같았습니다. Anyway, 위의 질문은 프로그래밍에서도 AI, AI에서도 머신러닝을 공부하려는 친구에게 받은 질문입니다. 프로그래밍 공부 하기도 막막한데 머신러닝을 공부한다는 것은 더욱 막막할 따름이죠. 답답한 상황이 발생했을 때 사람들은 해결책을 찾거나 포기를 하게 됩니다. 딥러닝 책을 찾는다는 것.. 2020. 5. 28.
[Q&A AI] 딥러닝과 기존 알고리즘의 차이점 형 딥러닝을 이용하는 이유가 뭐예요? 형 딥러닝과 기존에 있던 알고리즘의 차이가 무엇인가요? Deep Learning Data Science에서 흔히들 프로그램을 교육시킨다고 했을 때 딥러닝을 통해 머신러닝을 구현합니다. AI 개발자가 아니더라도 AI에 대해서 듣다보면 빠지지 않고 나오는 말이 바로 Deep Learning이죠. 프로그래밍 공부를 하는 동생들에게 딥러닝에 대해서 물어봤더니, 딥러닝이라는 단어를 듣게 되면 프로그래머에게 있어서 너무나도 먼 존재라는 느낌이 든다고 하더군요. 하지만 알고보면 딥러닝은 우리가 생각하는 것처럼 먼 존재가 아닙니다. 딥러닝과 알고리즘 사실 딥러닝은 알고리즘의 방식 중 하나로 생각하면 됩니다. 알고리즘 방식 중에서 다소 기존의 알고리즘과 차이가 있다는 특징을 가지고 .. 2020. 5. 22.
[Data Science] AI, 머신러닝 개발 환경이란? AI and Machine Learning Environment 인공지능(Artificial Intelligence)은 모든 분야에 활용될 수 있는 기술이며, 이미 다양한 분야와 산업에서 사용되고 있습니다. AI가 다양한 분야에 적용이 가능하다는 것은 어떤 목적을 가지고 AI 프로그램을 개발하여 사용할 것인지에 따라서 개발되는 AI 프로그램도 각기 다른 특성을 가지게 됩니다. 한마디로 AI 프로그래밍에서도 다양한 방법이 존재하기 때문에 목적에 맞는 방식을 사용하여 개발하여야 합니다. AI, 머신러닝 개발환경 구축 AI 개발 방식이 다양하다면 개발 환경 역시 다를 수밖에 없습니다. 예를 들어, 치킨에도 다양한 종류의 치킨이 있고 치킨의 종류에 따라 원재료인 chicken은 들어가지만 부재료는 달라질 수 있.. 2020. 5. 21.
[Data Science] 머신러닝의 종류(Types of Machine Learning) - supervised, unsupervised Machine Learning 머신러닝이란 기계가 배운다는 의미를 가지고 있듯이 머신러닝은 한 가지 방식만 의미하지는 않습니다. 현재까지 머신러닝 알고리즘은 크게 세 가지고 나뉘어서 사용되고 있습니다. Supervised, Unsupervised, Reinforcement Learning이죠. 여기서 파생된 새로운 방식 중에 Semi-supervised도 있지만 대표적인 세가지세 가지 머신러닝 알고리즘이라고 하면 저 세 가지를 의미합니다. 머신러닝 알고리즘에 따라 방식이 다르며 방식이 다르다는 건 상황에 따라 맞는 알고리즘을 사용하면 된다는 것입니다. 따라서 머신러닝이라고 할지라도 어떤 목적을 가지고 사용하느냐에 따라 각기 다른 머신러닝 알고리즘이 사용됩니다. supervised supervised란 ".. 2020. 5. 15.
728x90