Cài đặt Anaconda trên window và ví dụ Machine Learning

Hôm nay được một đồng chí cùng công ty cũ giới thiệu về Anaconda để code python. Theo mình hiểu Anaconda đơn giản là một IDE giúp ta có thể code python đơn giản hơn, đặc biệt việc cài đặt Anaconda trên window rất đơn giản. Anaconda còn tích hợp rất nhiều thư viện cơ bản, đặc biệt là các thư viện về Machine Learning với giao diện sử dụng và thêm thư viện rất đơn giản.

Công cụ này trước đây mình đã từng nghe nhưng chưa tiến hành sử dụng bao giờ. Trong quá trình học tập và làm việc, mình đã sử dụng nhiều IDE nhưng đều chưa thấy hài lòng. Sau đây mình sẽ hướng dẫn từng bước để cài đặt Anaconda trên window và sử dụng Anaconda để viết một chương trình Machine Learning đơn giản.

Ví dụ:
– Pycharm: cũng khá nổi tiếng nhưng khi cài 1 số thư viện mở rộng vào thì không hiểu sao lại lỗi và bị conflict

– IntellJI: nặng, chậm và cũng conflict (có thể quá phức tạp với mình)

– Cuối cùng thì đành quay về với IDE của chính Python cung cấp, nhưng cũng khá khó chịu với cái khoản cài đặt thêm các thư viện bổ sung.

Nghe đồng chí đó nói với IDE này đã tích hợp sẵn nhiều thư viện về Machine nên cũng vọc thử xem sao, có mất gì đâu.

Tải và cài đặt:

Tài liệu trên mạng có nhiều, mình cài đặt theo trang chủ của nó:
https://www.anaconda.com/download/

Bạn có thể tham khảo thêm:
https://medium.com/@GalarnykMichael/install-python-on-windows-anaconda-c63c7c3d1444

http://xperimentallearning.blogspot.com/2017/02/steps-to-install-anaconda.html

Lưu ý: mình khá nhọ khi cứ next mà không để ý phần tích chọn việc thêm biến môi trường hay là đường dẫn path để khi ở command line của window có thể gọi lệnh conda.
Nếu tích phần đó thì ok không sao, nếu không tích thì dùng lệnh sau để set path(trên command line của window):

set PATH=%PATH%;C:\ProgramData\Anaconda2;C:\ProgramData\Anaconda2\Scripts\

Đường dẫn này phụ thuộc vào nơi bạn cài đặt Anaconda nhé.

Test thử xem sao:

cai-dat-anaconda-tren-window
cai-dat-anaconda-tren-window

Sau khi cài đặt xong thì anaconda có giao diện như sau:

Có vài phần mặc định mà ta có thể dùng:

– Jupyterlab: nhấn vào đó nó nhảy lên web luôn, cái này code và biên dịch trên web localhost của mình luôn.

tính năng Jupyterlab trên Anaconda

– Jupyternotebook: chưa rõ là gì luôn nhưng cũng chạy trên nền web.

– spyder: sẽ hiển thị lên IDE để ta có thể code vài chương trình đơn giản.

Mình làm theo link này để test trước: https://chieupham.github.io/2017/02/18/Python-Windows/

Trên đây là cách cài đặt Anaconda trên window, nếu xong bước này thì ta hoàn toàn có thể thử dùng nó để code một chương trình python đơn giản để test hoặc có thể thử một ví dụ về Machine Learning sau đây với thư viện chuyên về Machine Learning là sklearn.

Ví dụ Machine Learning với Anaconda

B1. Test 1 thư viện mặc định:

>>import numpy
>>umpy.__file__

B2. Test 1 thư viện cần cài thêm:

>import sklearn

Sẽ lỗi luôn

B3. Cài thêm thư viện sklearn

Sử dụng command line của window chạy: conda install scikit-learn
chọn y để đồng ý cài đặt sklearn (phần lưu ý phía trên sẽ có tác dụng cho phần này)
Thử lại xem thư viện có chưa nhé:

>import sklearn

B4. Chạy thử 1 chương trình theo hướng dẫn:
https://machinelearningcoban.com/2016/12/28/linearregression/
Ta có kết quả:

Một ví dụ về Machine Learning với Anaconda

Hay đấy chứ, chúc các bạn thành công!

FCR Tỉ lệ gọi lại phản ánh hiệu quả của Call Center

Là IT phụ trách mảng báo cáo trong một công ty mình hay tiếp xúc với phòng Dịch vụ khách hàng (Call center).

Một chỉ số mình cần tính đó là chỉ số FCR: tỉ lệ cuộc gọi lại sau lần đầu tiên của khách hàng.

Ý nghĩa: từ chỉ số này ta có thể đo độ hiệu của quả Call Center cũng như độ hài lòng, yếu tố về dịch vụ hoặc sản phẩm của công ty.

Cách tính trong tháng:

A: Số KH chỉ gọi 1 lần

B: Số KH mà khoảng cách gọi 2 lần liên tiếp lớn hơn 7 ngày

C: Số KH mà khoảng cách gọi 2 lần liên tiếp nhỏ hơn hoặc bằng 7 ngày

Tỉ lệ sẽ được tính bằng công thức:

FCR = (A+B)/(A+B+C)

Để tính chỉ số này cũng bật ra được khá nhiều điều trong việc sử dụng SQL Develop của mình.

Một số kinh nghiệm cá nhân và lời khuyên khi đi phỏng vấn

Trong đời (thời nay) ai mà chẳng phải một vài lần đi phỏng vấn. Phỏng vấn ở đây nhiều nhất có lẽ là đi xin việc(từ xin việc chỉ đúng với ngày xưa với cơ chế xin cho thôi, còn công việc thì đương nhiên là thuận mua vừa bán nhưng tại đây ta cứ tạm gọi là đi xin việc), phỏng vấn để xin visa(lại xin), phỏng vấn đi du học, phỏng vấn để vào câu lạc bộ…

Phỏng vấn thì có nhiều cấp độ, tính chất quan trọng hoặc không quan trọng lắm. Thực chất thì có lẽ đều quan trọng vì đây là ta cần thì mới đi phỏng vấn thôi, mặc dù có thể chỉ đi cho vui để lấy… kinh nghiệm :D. Phỏng vấn cũng có nhiều hình thức: qua điện thoại(chỉ có nói không thôi), qua video trực tuyến(cả hình lẫn tiếng), và đa phần là phỏng vấn trực tiếp(sô-lô 1vs1 hoặc 1vs nhiều)…

Ở đây với quan điểm chủ quan của tác giả tại thời điểm hiện tại với kinh nghiệm vài lần đi phỏng vấn về lĩnh vực Công nghệ thông tin. Trong đời mình thì tới thời điểm hiện tại mình có tham gia 5 cuộc phỏng vấn với tư cách là ứng viên:

  1. Lần đầu tiên trong đời đó là mình và thằng bạn đi phỏng vấn vào đội thanh niên tình nguyện khoa CNTT khi là sinh viên năm 2 đại học. Không có gì nhiều vì mặc định là mình pass rồi.
  2. Lần thứ hai thì là lần đầu xin việc, đó là một ty làm về core banking. Phỏng vấn ban đầu mình cũng tự tin nhưng vài câu mình cũng không trả lời được. Nhưng vẫn pass.
  3. Lần thứ ba thì mình phỏng vấn xin việc ở Tập đoàn viễn thông quân đội hàng đầu Việt Nam và cũng pass.
  4. Lần thứ tư thì mình phỏng vấn xin việc ở doanh nghiệp vốn 100% nhà nước về lĩnh vực PAYTV. Có người quen nên cũng pass.
  5. Lần thứ năm thì mình phỏng vấn xin việc cũng ở lĩnh vực PAYTV nhưng là doanh nghiệp liên doanh có yếu tố nước ngoài. Và vì có người giới thiệu và chắc ăn nên cũng suýt nữa thì trượt.

Đó là những lần mình đi phỏng vấn và với tư cách ngồi ở hàng ghế ứng viên. Chi tiết kỉ niệm phỏng vấn mình sẽ chia sẻ ở một bài khác. Ở đây với đa số là pass(có thể coi là thành công) nên mình xin chia sẻ với các bạn kinh nghiệm của mình như sau:

Điều đầu tiên, quan trọng nhất mà ai cũng nói cấm có sai đó là sự chuẩn bị trước. Khi mình đã có sự chuẩn bị rồi, càng nhiều càng tốt thì phần lớn bạn đã pass rồi.

  1. Chuẩn bị CV: Mục này với thời đại này thì là điều đương nhiên rồi, theo mình thì CV càng ngắn càng tốt nhưng đừng ngắn quá. Xúc tích vào 4 điểm: Thông tin cá nhân, Quá trình học tập – bằng cấp, Kinh nghiệm chuyên môn bản thân và định hướng nghề nghiệp, Sở trường, sở đoản, quan điểm cá nhân.
  2. Chuẩn bị kiến thức: Điều này là đương nhiên, ta đi xin việc để đi làm kiếm tiền cơ mà(à không, mà là cống hiến cho đời :D). Khi ta chấp nhận đi phỏng vấn hoặc là đơn vị phỏng vấn gọi ta thì đều đã nắm rõ với nhau về yêu cầu rồi, do vậy việc chuẩn bị kiến thức về các yêu cầu này là quan trọng. Nhưng chúng ta cũng vẫn nên chuẩn bị các câu hỏi ngoài lề, hỏi khó hoặc lắt léo để tăng độ khó cho game. Chuẩn bị tốt bao nhiêu thì ta càng tự tin bấy nhiêu.
  3. Chuẩn bị về đối tượng phỏng vấn: Đối tượng phỏng vấn ở đây là ta cần hiểu về nơi ta định xin vào làm hoặc chính là người phỏng vấn ta nếu ta biết. Các cụ chả có câu Biết địch biết ta, trăm trận trăm thắng còn gì? Điều này rất quan trọng đấy nhé. Thứ nhất nó là nơi ta sẽ chiến đấu hoặc đơn giản hơn là họ có hỏi thì mình còn biết đường mà chém.
  4. Một số thứ cần chuẩn bị khác đó là cách ăn mặc, ta cần ăn mặc lịch sự gọn gàng vì ấn tượng lần đầu tiên là rất quan trọng. Mình học được điều này từ một người em ít tuổi hơn mình nhưng kinh nghiệm thì mình phải gọi nó là anh. :D. Bạn nên in một số bản CV của mình ra vài bản để đưa mấy người phỏng vấn đọc chơi. Lý do là gì ư? Không phải ai phỏng vấn mình cũng chuẩn bị kỹ lưỡng cũng như có 1 số thành phần đi cho vui để có đủ ban bệ và đông người cho nó áp đảo.
  5. Cuối cùng cũng là điều quan trọng nhất đó là thành thật, chúng ta thành thật với bản thân mình và với người phỏng vấn. Chả mất gì cả, cái gì biết thì bảo biết, không biết thì bảo không, cái gì có thể và mong muốn được học tập vì học tập là cả đời cơ mà. Người ta gọi chung là có tinh thần cầu tiến. Và thứ nữa đó là mình cũng nên có quan điểm cá nhân, yêu gét rõ ràng, đúng sai cần thiết phải phản biện lại.

Trên đây là kinh nghiệm bản thân và cũng là lời góp ý nhỏ cho các bạn sinh viên chuẩn bị và đã ra trường tham khảo. Chúc các bạn phỏng vấn luôn pass và thành công trong cuộc sống.

Tổng hợp về trí tuệ nhân tạo

  • Slide về trí tuệ nhân tạo:

– Bài giảng của thầy Phạm Trọng Hoàn: https://pdfs.semanticscholar.org/presentation/33e2/1d6243aa43da3426198243dc387dcc69bdf1.pdf

– Nhập môn trí tuệ nhân tạo: https://pdfs.semanticscholar.org/presentation/33e2/1d6243aa43da3426198243dc387dcc69bdf1.pdf

– Trí tuệ nhân tạo: http://thuvien.tvu.edu.vn/ebook/download/cntt/baigiangtrituenhantao.pdf

  • Bài báo về trí tuệ nhân tạo:

– Bài nghiên cứu về ứng dụng trí tuệ tạo: https://arxiv.org/ftp/arxiv/papers/1801/1801.03604.pdf

  • Cổng tìm kiếm bài báo nghiên cứu khoa học:

– Semantic Scholar: https://www.semanticscholar.org/

Một số thư viện phổ biến cho kỹ sư Machine Learning và Deep Learning (P1)

Một số thư viện phổ biến cho kỹ sư Machine Learning và Deep Learning(P1)

Học Machine learning(Học máy) và Deep learning (học máy sâu) rất khó khăn cho người mới học. Cũng như các thư viện Deep learning rất khó để có thể hiểu. Tôi đã tạo một kho trên Github(cheatsheet-ai) với các phần ghi chú quan trọng mà tôi tổng hợp từ nhiều nguồn khác nhau. Cùng xem và bổ sung cho các phần này nếu bạn có.

1. Keras (Thư viện phân tích dữ liệu trên Python)

Nguồn: https://www.datacamp.com/community/blog/keras-cheat-sheet#gs.DRKeNMs

2. Numpy

Nguồn: https://www.datacamp.com/community/blog/python-numpy-cheat-sheet#gs.AK5ZBgE

3. Pandas

Nguồn: https://www.datacamp.com/community/blog/pandas-cheat-sheet-python#gs.HPFoRIc

Nguồn: https://www.datacamp.com/community/blog/python-pandas-cheat-sheet#gs.oundfxM

4. Scipy

Nguồn: https://www.datacamp.com/community/blog/python-scipy-cheat-sheet#gs.JDSg3OI

5. Matplotlib

Nguồn: https://www.datacamp.com/community/blog/python-matplotlib-cheat-sheet#gs.uEKySpY

6. Scikit-learn

Nguồn: https://www.datacamp.com/community/blog/scikit-learn-cheat-sheet

7. Neural Networks Zoo

Nguồn: http://www.asimovinstitute.org/neural-network-zoo/

 

Một thuật toán phát hiện bóng cứng với nguồn sáng song song

Một thuật toán phát hiện bóng cứng với nguồn sáng song song

Trịnh Hiền Anh(1) ,Lê Thị Kim Nga(3) , Phạm Khắc Tuy(2) , Phạm Bá Mấy(1) ,Đỗ Văn Thiện(1)

1: Viện Công nghệ thông tin, Viện Hàn lâm Khoa học và Công nghệ Việt Nam ([email protected])
2: Đại học Công nghiệp Hà Nội
3: Đại học Quy Nhơn

Tóm tắt: Báo cáo này đề xuất một thuật toán phát hiện bóng của đối tượng trong ảnh. Bóng ở đây được hiểu
là hình chiếu của đối tượng trên một bề mặt nằm ngang với nguồn sáng là mặt trời. Thuật toán mà bài báo
đưa ra dựa vào việc phân tích hướng của nguồn sáng 3D trên các điểm bao ngoài của đối tượng, nhờ đó có thể
khoanh vùng được bóng của đối tượng.
Từ khóa: Shadow detection, light source, object detection…

1  Giới thiệu

Ánh sáng giúp ta quan sát được mọi sự vật và hiện tượng có trong tự nhiên. Khi ánh sáng chiếu đến vật thể, một phần ánh sáng được phản xạ lại mắt giúp ta quan sát được vật thể đó, một phần bị hút và một phần được chiếu tới mặt phẳng tạo thành bóng. Có thể nói, bóng là một thành phần không thể thiếu được của vật thể khi nhận được ánh sáng từ một nguồn sáng bất kỳ.

Có hai loại bóng là bóng cứng và bóng mềm:

– Bóng cứng được hình thành từ nguồn sáng trực tiếp và mạnh hơn nhiều lần các nguồn ánh sáng khác (nếu có). Bóng của đối tượng sẽ in lên đối tượng khác thành một vệt có màu xám đặc trưng, tối hẳn so với các vùng xung quanh.

– Trong khi, bóng mềm được hình thành từ nguồn sáng yếu hơn, có thể bị tán xạ và làm yếu đi. Bóng này có dạng mờ, tại đó ngoài cảm giác bóng ta có thể nhìn được hình dạng, màu sắc đối tượng mà bóng đã đè lên nhưng nhạt hơn so với khi không có bóng.

Phát hiện và khử bóng cho các đối tượng trong ảnh là một bài toán được đặt ra trong nhiều ứng dụng thực tế. Các phương pháp tập trung vào mô hình sự khác nhau về màu sắc, thống kê cường độ và các thuật toán gom cụm, phân lớp… Ví dụ, các tác giả từ Hungary [1] sử dụng phép phân tích và thống kê cường độ. Thuật toán tỏ ra hiệu quả trên ảnh có bóng cứng và cấu trúc đơn giản nhưng lại cho kết quả sai lệch với ảnh chứa nhiều vùng bóng. Với hướng tiếp cận khác [2], các tác giả đến từ Ấn Độ lại sử dụng mô hình suy giảm ba màu và thuật toán phân đoạn Watershed để phát hiện vùng bóng. Phương pháp này phù hợp cho các ảnh trình tự như trong video nhưng cũng không đạt được nhiều nhiều kết quả khả quan. Trong [3], họ lại sử dụng việc phân tích các đặc trưng trong ảnh và liên kết màu xám áp dụng cho ảnh cảnh quan đô thị. Cũng dựa trên sự tính toán về mật độ bóng từ ảnh thực, các tác giả [4] tính mật độ bóng(được định nghĩa bởi đo mức ánh sáng) trong ảnh. Do vậy, thuật toán hoạt động dựa trên ảnh ngoài trời và cấu trúc bóng đơn.

Bài báo này, nhóm tác giả đề xuất một thuật toán phát hiện bóng cứng của đối tượng trong bài toán giám sát giao thông đô thị.

Phần còn lại của bài báo được cấu trúc như sau: phần 2 giới thiệu một số khái niệm cơ bản, phần 3 giới thiệu thuật toán phát hiện bóng đối tượng với nguồn sáng song song, phần 4 trình bày các kết quả thực nghiệm và cuối cùng là kết luận về kỹ thuật đề xuất.

Địa chỉ xem toàn bộ bài báo: link

ARPU – Doanh thu trung bình trên 1 thuê bao

ARPU – Doanh thu trung bình trên 1 thuê bao

Ngoài việc dựa vào nhiều yếu tố khác nhau để đánh giá về giá trị doanh nghiệp cũng như tập khách hàng của doanh nghiệp. ARPU là một yếu tố hàng đầu để đánh giá thuê bao.
Một số ngành hay sử dụng ARPU bao gồm:
– Thuê bao cước viễn thông
– Thuê bao truyền hình
– …

Lợi ích của chỉ số ARPU:

– Nắm được giá trị trung bình trên 1 thuê bao đồng nghĩa với việc xác định được phân khúc thị trường của doanh nghiệp trên lĩnh vực đó
– Nắm được giá trị trung bình này có thể đánh giá được doanh thu của doanh nghiệp
– Từ đây có thể tiếp tục phân tích để tiến hành chia phân khúc thị trường để chia nhóm khách hàng dựa trên giá trị
– Từ doanh thu này kết hợp với chi thí trung bình trên 1 thuê bao để tính toán lời lãi trên 1 doanh thu

Nhược điểm của chỉ số ARPU:

Hiện nay chỉ số này không còn phản ánh được nhiều về giá trị thuê bao do nhiều yếu tố (đa dịch vụ, các dịch vụ gia tăng…) nên có một số chỉ số khác ra đời nhằm khắc phục chỉ số này.

Các blog được viết bằng Tiếng Việt về IT

Danh sách các blog được viết bằng Tiếng Việt và lời nhận xét ngắn của bản thân mình mà mình thường xuyên đọc. Theo mình thấy thì dev Việt nhà ta ít viết blog, có thể là không có khiếu viết lách hoặc đơn giản là chả có gì để mà viết – mã cũng có thể họ quá bận hoặc đơn giản là không thích. Các blog về lĩnh vực IT mà mình đọc thì tác giả đa phần là đã ra nước ngoài hoặc làm việc có yếu tố nước ngoài, có thể họ tiếp xúc được nhiều hơn hoặc bên ngoài đã thổi lửa cho họ để họ có sức viết.

Nhìn chung mình xin cám ơn các tác giả này, có những tác giả đã đang và sẽ còn viết nhưng có những tác giả đã ngưng viết từ lâu. Như tiêu đề bài viết, mình nhấn mạnh ở đây là những blog được viết bằng Tiếng Việt chứ không phải là blog của dev Việt. Vì sao? Vì họ có thể đã từng là người Việt, có dòng máu Việt hoặc là người Việt xịn. Vì có những người không còn ở Việt Nam, có những người không còn quốc tịch Việt Nam nữa (quan điểm của mình là người Việt là dòng máu Việt + quốc tịch Việt Nam). Do vậy đôi khi họ có những cách nghĩ khác, quan điểm mỗi người là khác nhau, mình tôn trọng và vẫn cám ơn vì dù sao họ vẫn dùng Tiếng Việt và chia sẻ kiến thức + hiểu biết cho người Việt.

Haizz, nói dông dài, sau đây là danh sách các blog mình hay đọc và có đôi lời nhận xét của bản thân về nội dung các blog này(danh sách sẽ luôn được cập nhật).

  1. Blog về khoa học máy tính: Đây là blog đầu tiên mà mình tiếp xúc, tác giả đã ngừng viết từ lâu nhưng thừa nhận đây là các bài viết chất lượng của nhiều người viết về Toán ứng dụng trong tin học. Theo mình thì các tác giả này đa phần lớn tuổi đã xa VN lâu rồi và có thể mang tâm lý bài CS.
  2. Anh Thái – Kỹ sư bảo mật Google: Blog mình mới biết, tác giả là chuyên gia về bảo mật hiện đang đầu quân cho Google
  3. Vina code: Blog mình cũng được đọc từ lâu, cũng khá nhiều bài nhưng mình cũng không ấn tượng lắm
  4. Blog của anh Huy Trần: Tác giả này trẻ, hình như đang ở xứ sở JAV thì phải, phong cách và kiến thức viết rất hay.
  5. Blog anh Huydx(Chắc là Đỗ Xuân Huy hoặc Đào Xuân Huy): Blog này thì mình mới biết, cảm giác đọc cũng khá trôi.
  6. Kipalog: Tiền thân là blog khmt.github.io hình như được mấy ông này dựng lên. Ban đầu các bài viết rất là truất nhưng về sau theo hướng mở cho mọi LTV nên mình thấy hơi rác chút. Các anh nên tập hợp các bài hay thực sự (có sự đánh giá) để ghim lại.
  7. Tôi đi code dạo: Đây là blog mình thấy có nhiều kiến thức hay về làm sản phẩm nhưng không thích cách viết của tác giả lắm.

–https://itviec.com/blog/7-blogger-viet-dan-it-khong-nen-bo-qua/

 

Xác định ảnh giả mạo

Thầy Toàn: Phần mềm xác định ảnh giả mạo, xác định vùng giả mạo.

Tương lai AI thay thế con người: chat, email, call… thì ta nghiên cứu phần mềm, tính năng có thể phát hiện là người hay là máy. Phát hiện trí tuệ là trí tuệ con người hay trí tuệ nhân tạo, máy thử turing